Задание имени переменной в качестве входной функции и получение ее значения в качестве выходной - PullRequest
0 голосов
/ 17 сентября 2018

У меня есть много переменных в рабочей области в MATLAB, и мне нужно создать некоторую статистику через функцию.Мне нужно ввести имя переменной в качестве входных данных функции, и мне нужно вернуть ее значение в функции и затем обработать его.

varName='Sa'
function [ someStatistics ] = AnalyzeThis (varName);

Итак, в этой функции AnalyzeThis мне нужно получитьзначение Sa (которое является одномерным массивом).Как я могу это сделать?

1 Ответ

0 голосов
/ 17 сентября 2018

Краткий ответ: использование evalin:

function someStatistics = AnalyzeThis(varName)
  varValue = evalin('caller', varName);
  % Do stuff with varValue
  ....
end

Более длинный ответ: вы не должны разрабатывать свой код так, чтобы он зависел от таких функций, как evalin (, таких как "зло" eval). Вместо того, чтобы иметь целую кучу переменных с разными именами в рабочей области вызова, сохраните данные в структурах , к которым легко можно получить доступ по именам полей .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...