Как найти все значения больше 0 в массиве ячеек в Matlab

#matlab #operators #cell-array

#matlab #операторы #ячейка-массив

Вопрос:

Я хочу найти и сохранить все значения больше 0 в массиве и сохранить их в переменной с именем «times». Как мне это сделать? И в чем разница между сохранением индексов этих ячеек и фактическими значениями ячеек?

Это то, что я пробовал, но это должно быть плохо, потому что я получаю ошибку:

Неопределенный оператор ‘>’ для входных аргументов типа ‘cell’.

 clear all, close all

[num,txt,raw] = xlsread('test.xlsx');

times = find(raw(:,5)>0)
  

Комментарии:

1. как это raw выглядит? из-за ошибки попробуйте raw{:,5}

2. Спасибо @HBHB! Я принял ответ ниже, потому что он был более подробным и был опубликован в качестве ответа.

Ответ №1:

Чтобы получить доступ к содержимому ячейки, вы должны использовать {} вместо () :

 idx = find([raw{:, 5}] > 0);
  

Но это дает вам индекс ячеек raw , содержащих положительное значение. Если вместо этого вам нужны значения, вы можете получить к ним доступ и собрать их в числовой массив таким образом:

 times = [raw{idx, 5}];