Я хочу создать цикл, который будет перебирать несколько строк, но не может сделать это в 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
— мой код, использующий значения строк