• Регистрация
bublikxexe
bublikxexe 0.00
н/д

Изъятие значений переменных в цикле

02.10.2020

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

Теги

    02.10.2020

    Ответы

    • Centurio
      Centurio+42.00
      2.10.2020 14:57

      Зачем вам использовать функцию eval? Без неё обойтись никак нельзя?

      • kurguz
        kurguz+270.00
        4.10.2020 15:01

        Ваш код не работает, потому что вы неправильно записали аргумент функции eval:

        'A2 = interp2(X,Y,level,X2Y2'