цикл foreach со строками в Matlab

Я хочу создать цикл, который будет перебирать несколько строк, но не может сделать это в Matlab.

Вот что работает:

for i=1:3
  if (i==1)
    b='cow';
  elseif (i==2)
    b='dog';
  else
    b='cat';
  end

  disp(b);
end

и результат:

cow
dog
cat

Но мне нужно что-то более элегантное, что будет выглядеть так:

for i=['cow','dog','cat']
  disp (i);
end

и даст тот же результат.

Есть ли в Matlab возможность сделать это?

ДОПОЛНЕНИЕ:

Мне нужны слова в виде строк, чтобы использовать их позже, а не просто отображать (dispбыл только в качестве примера). Я пытался использовать массивы ячеек в своей реальной программе:

clear all;
close all;
clc;

global fp_a
global TEST_TYPE
global SHADE_METHODE

for fp_a=11:24
for shade={'full','fast'}
    SHADE_METHODE=shade(1);
    for test={'bunny','city'}
        TEST_MODE=test(1);
        fprintf ('fp_a:%d | test: %s | shade: %s',fp_a,TEST_TYPE,SHADE_METHODE);
        ray_tracing;
    end
end
end

Это не работает, так как значения остаются в виде ячеек, а не строк. Я получаю сообщение об ошибке:

??? Ошибка при использовании функции ==> fprintf не определена для входных данных «ячейки».

*-Мне действительно не нужен fprintfЯ просто использую его для проверки правильности значений.

**- ray_tracing— мой код, использующий значения строк

10
задан juanpastas 4 August 2013 в 08:03
поделиться