1
如果我有這樣的功能:Matlab函數 - 如何使用字符串輸入訪問結構?
function [ out ] = call(a)
out = s.a
end
我怎樣才能得到它與調用(「你好」)或成才這樣訪問結構s.hello?
方面的問題:是否也可以通過這樣的函數訪問變量「hello」?
在此先感謝,你們真棒!
如果我有這樣的功能:Matlab函數 - 如何使用字符串輸入訪問結構?
function [ out ] = call(a)
out = s.a
end
我怎樣才能得到它與調用(「你好」)或成才這樣訪問結構s.hello?
方面的問題:是否也可以通過這樣的函數訪問變量「hello」?
在此先感謝,你們真棒!
我會用動態結構的訪問,像這樣:
s.(a)
瞭解詳情,請Mathworks website!
此外,如果我們看一下你的榜樣作用,我注意到你沒有在結構作爲傳遞一個參數,也許是全球性的,但在這裏使用功能作爲一個框架這一技術的一個例子:
function out = call(s,a)
out = s.(a);
end
然後使用的功能,我嘗試:
>> s = struct('hello',42)
s =
hello: 42
>> call(s,'hello')
ans =
42
工程很好,沒有遞歸限制!如果你仍然得到一個遞歸函數,嘗試添加更多的代碼到這個問題中,我們會看到它的底部!
HTH
我試過了,但它給我的錯誤,一個是這樣的: ???達到500的最大遞歸限制。使用set(0,'RecursionLimit',N)更改限制。請注意,超出您的可用堆棧空間可能會導致MATLAB和/或您的計算機崩潰。 我只是用像 a.hello 結構a.ciao 並與上述狀態函數 測試=調用(「你好」)把它稱爲 – Lasse
@Lasse,在這裏看到我的更新,希望這是有幫助的! – macduff
好吧,似乎它有結構名稱的問題,我也必須喂這個功能,對吧? – Lasse