我想檢查Matlab工作區中存在的變量,然後檢查它的類。 所有事情都是由m文件中的命令完成的。 在這種情況下,變量的名稱是一個符號或字符,我可以如何使用isa函數。如何在matlab中傳遞參數給'isa'函數
a='x';
isa(a,'timeseries')
上面的代碼不工作,但如果我改變
isa(x,'timeseries')
它是好的,所以我怎麼可以通過不直接通過其名稱檢查類對象的? 謝謝!
我想檢查Matlab工作區中存在的變量,然後檢查它的類。 所有事情都是由m文件中的命令完成的。 在這種情況下,變量的名稱是一個符號或字符,我可以如何使用isa函數。如何在matlab中傳遞參數給'isa'函數
a='x';
isa(a,'timeseries')
上面的代碼不工作,但如果我改變
isa(x,'timeseries')
它是好的,所以我怎麼可以通過不直接通過其名稱檢查類對象的? 謝謝!
,因爲當你傳遞一個字符串作爲第一個參數isa
不能使用isa
這樣的類字符串是char
isa('x', 'double')
% 0
isa('x', 'char')
% 1
您可能使用eval
傳遞值x
至isa
isa(eval('x'), 'double')
但是, Ë更好的做法是明確的將類使用whos
S = whos('x');
strcmp(S.class, 'double')
% 1
您想使用的功能exist
:https://www.mathworks.com/help/matlab/ref/exist.html
if exist('x','var')
class(x)
end
你傳遞一個字符串變量來exist
的名稱。一旦你確定它存在,你可以在你的isa
呼叫中使用它。
它不適合我的情況下工作,無論如何,我希望變量來傳遞「X」或東西轉換爲對象名稱以「ISA」使用,只存在於工作區中檢查變量是否存在。 – greenworld
@greenworld:這回答你說的問題。你首先需要使用'exist'來檢查變量是否存在。然後你可以用'isa'來看它是否屬於某個特定的類。目前還不清楚爲什麼你需要將變量的字符串名稱傳遞給'isa'。如果您有其他問題,請修改上面的問題。 – horchler
感謝您的回覆,但是,我認爲我的問題很明確,傳遞參數描述如下: 「在這種情況下,變量的名稱是符號或字符,我怎麼可以使用isa函數」 In另一方面,當我寫道: isa(x,'timeseries') 「沒關係」 這意味着我知道如何檢查一個變量是否存在。那麼你的答案不能幫助我。 爲什麼我需要這樣做,因爲我想用工作區中存在的不同類來處理多個變量。 – greenworld