У меня проблема, я думаю, что я уже ответил, но это не сработало. Вот сделка:Filtering Cell Array - MatLab
У меня есть большой массив ячеек (около 300000x60) с некоторыми числовыми данными, некоторые даты, некоторые заготовки, некоторые строки, которые я должен фильтровать (как в Excel): Например:
m = ...
{ 'date ' 'code' 'number' 'market' 'max' 'min'
'01/01/2000' 'tsa' 1 0 0.9 0.0008
'01/01/2000' 'sje' 2 0 1.8 1.5
'01/02/2000' 'koi' 1 1 5.5 1.8
'02/01/2000' 'sjk' 2 0 5.8 3.5
'05/02/2000' 'kkj' 5 7 5.5 3.8 };
можно фильтровать строки ('код' столбцов) с:
b = m(strcmp('tsa',m(:,2)),:);
и как результат:
b =
'01/01/2000' 'tsa' 1 0 0.9 0.0008
(это отлично работает).
НО, когда я попытался отфильтровать числа, с c=m([m{:,3}] == 1,:);
У меня были некоторые странные ответы в «c» (я получил массив ячеек со всеми возможными значениями в столбце 3, а не только те, которые соответствуют числу «1» «)!
Я хочу, чтобы ответ, как:
c = m([m{:,3}] == 1,:)
c =
'01/01/2000' 'tsa' 1 0 0.9 0.0008
'01/02/2000' 'koi' 1 1 5.5 1.8
кто может мне помочь?
Заранее благодарен!
'cell' является зарезервированной функцией в MATLAB, не обфускации, создавая переменную с тем же именем. Кроме того, я не могу воспроизвести проблему с фактическим фрагментом кода. Рассмотрите возможность изменения 'cell' на' Cell' и предоставления кода, который воспроизводит проблему. – Oleg
Олег, мое плохое имя. На самом деле это другое имя! – Luiz
Я благодарен вашему ответу. Я знаю, что я ответил на что-то очень похожее на http://www.mathworks.com/matlabcentral/newsreader/view_thread/290278 Но эта вторая часть не сработала для меня! Не могли бы вы мне помочь? – Luiz