在大多數OO語言中,變量可能指向對象,它們也可能具有空值,這非常方便。matlab - 什麼是null/None/nil/NULL等值?
在Matlab中,我有解析的命令的功能,然後返回一個單元陣列,或false
(其等於零 - 這是另一種常見的模式),如果它失敗:
function re = parse(s)
...
if (invalid)
re = false;
return;
end
end
的問題是,當我檢查的結果,它給出了一個錯誤:
re = parse(s);
if (false == re)
Undefined function 'eq' for input arguments of type 'cell'.
我寫了一個函數來檢查它沒有一個錯誤:strcmp('logical', class(re)) && false == re
,但是這似乎是在炎熱地區使用很慢代碼,而且如果我不得不增加代碼也很不方便s函數到我正在寫的每個M文件。
使用NaN
更糟,因爲除了拋出這個錯誤之外,它也不等於它本身。
使用這種模式有什麼更好的選擇?
爲了解決你的問題之一,慣用MATLAB是使用'isnan(A)'檢查楠,而不是'A == NaN'(因爲你發現了,後者沒有工作)。 – tmpearce 2013-03-14 04:33:54
這將是另一種選擇,但不幸例如'isnan({})'拋出一個錯誤。 – 2013-03-14 05:10:47