Функция Matlab 'save' - как назвать переменную внутри файла .mat так же, как имя файла? - PullRequest
1 голос
/ 06 октября 2010

Я хочу сохранить результат q для каждого case_no в соответствующей строке q_cases в виде файла .mat.С моим утверждением save(q_cases{case_no},'q'), хотя имена файлов идут как соответствующая строка q_cases, однако все эти файлы .mat содержат переменную с тем же именем q.Когда я открываю эти файлы .mat, я получаю переменную с именем q для всех 3 файлов.Однако я хочу, чтобы имена переменных, хранящихся в этих файлах, совпадали с именами файлов, т.е. q_a, q_b и q_c соответственно.

1 Ответ

4 голосов
/ 06 октября 2010

Одним из способов решения этой проблемы является присвоение имени переменной с помощью eval .

EDIT

Eval обычно не рекомендуется, так как его трудно отлаживать / поддерживать. Таким образом, вместо этого вы можете сначала создать структуру и использовать опцию *1001*-struct для сохранения , например:

for case_no=1:length(n)
       [q,S]=q_from_A(nModel,nModel_want,nCell,T,A{case_no},B{case_no},C{case_no},D{case_no},E{case_no},F{case_no});
    %# create structure for saving
    saveStruct = struct(q_cases{case_no},q,...
        S_cases{case_no},S);
    %# ... and save it
    save(q_cases{case_no},'-struct','saveStruct',q_cases{case_no});
    save(S_cases{case_no},'-struct','saveStruct',S_cases{case_no});
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...