我有一個嵌套的函數,它調用一個基本上包含常量和字符串的一些定義的腳本。我需要將這些變量傳遞給基礎工作區。我知道我可以將它們定義爲global
,這應該不是最好的解決方案,是嗎?如何爲多個變量使用assignin?
傳統的方式,使用函數的輸出參數似乎對我來說太複雜了。 (這實際上只是一次性調用,所以我不想炸燬我的代碼)所以我想過使用assignin
和who
,但它似乎不適用於單元陣列或逗號分隔列表。可能我只是缺少一些語法優化。
function myFunction()
myScriptWithDefinitions;
% who returns a cell array with all variables from my script
temp = who;
% now I try to assign these variables to my base workspace
% these are my attempts, none of them working
assignin('base',who);
assignin('base',temp{:});
assignin('base',{temp{:}});
...
end
我知道我通常需要傳遞一個名稱列表和一個值列表。 有沒有進一步的想法?
編輯:像
assignin('base',{'A','B'},{2,5})
% or
assignin('base',{'A',2},{'B',5})
不工作,所以我想assignin
一般是不是一種選擇。
只是爲了您的信息:函數的名稱是assignin,並且必須有第三個參數:assignin(ws,'var',val);但我仍然無法找到問題的解決方案... –
是的,謝謝,但它只是一種類型,因此不在我的代碼中。 – thewaywewalk