我知道,在MATLAB函數裏面,inputname(k)
會返回第k個參數iff參數是一個變量名。有沒有什麼辦法可以編寫一些解析代碼,當參數是一個結構體時,它可以檢索完整的輸入參數。 foo.bar
?我希望能夠做到這一點的原因是,我正在編寫一些通用的工具,其中輸入可以是命名變量或命名結構元素。解決方案等效於「輸入名稱」以返回結構名稱?
我的主要目的是能夠存儲和返回輸入段作爲函數返回的結構或其他變量的一部分。這是一個「監管鏈」功能,它使我或其他人更容易驗證用於生成輸出數據集的源數據集。
我不希望用戶有外部的自我解析,或有應付像
function doit(name,fieldname)
if(exist('fieldname','var'))
name = name.(fieldname);
myinput = [inputname(1),inputname(2)];
else
myinput = inputname(1);
end
% do the function stuff
(我稱這爲雜牌一些雜牌,因爲它既要求用戶輸入陌生參數以及因爲它爲具有多個輸入的函數的參數序列犯規)
在你的'doit'函數中,'inputname'從哪裏來,'name'如果不是'struct'呢?我沒有真正關注你的意見和目的。 – Matt
你可以在這裏提供更多關於你在做什麼的背景嗎? – Suever
如果它是一個結構體的字段,它有什麼關係?你是否試圖使用'assignin'作爲代碼中的某個地方將結果推回給它們? – Suever