2016-09-29 7 views
0

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

Это то, что я пытался, но он должен быть worng, потому что я получаю ошибку:

Undefined operator '>' for input arguments of type 'cell'.

clear all, close all 

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

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

, что делает 'raw' выглядеть? от ошибки, попробуйте 'raw {:, 5}' – houtanb

+1

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

ответ

0

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

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

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

times = [raw{idx, 5}]; 

 Смежные вопросы

  • Нет связанных вопросов^_^