#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}];