Изъятие значений переменных в цикле
Добрый день. Есть переменные в рабочем поле, полученные с помощью функции eval, например Х1...Х399 и Y1...Y399. Необходимо использовать их в цикле при интерполяции. Вот что я пытался сделать также с помощью eval:
for z=1:399
eval(['A',num2str(z), ' = interp2(X,Y,level,X',num2str(z),'Y',num2str(z);]);
end
Однако это не работает, так как у функции interp2 всего 5 переменных. Если заменить num2str(z) просто соответствующей цифрой, то все работает, но это слишком долго в ручную писать 399 раз.
Я бы хотел, чтобы это было вот так:
for z=1:399
eval(['A',num2str(z), ' = interp2(X,Y,level,X{z},Y{z};]);
end
Где X(z)=X1...X399
Y(z)=Y1...Y399
Подскажите, пожалуйста, как это можно сделать?
P.S. Пытался через textfilename , но тоже не дает, так как он видит их как название, а мне нужны значения из этих названий.
Ответы
Зачем вам использовать функцию eval? Без неё обойтись никак нельзя?
Ваш код не работает, потому что вы неправильно записали аргумент функции eval:
'A2 = interp2(X,Y,level,X2Y2'