如果你正在解決一個矩陣問題(即每行是一個字符串)沒有特別在我看來不錯的解決方案,但如果你的字符串被包含到一個單元陣列,事情變得更容易,更好。
所以我們開始創建這樣的電池陣列:
myStrings={'NACA64A010' 'NACA64A010' 'NACA64A010' 'NACA64A010'};
其中每個單元包含一個字符串。這將使你的代碼更健壯,因爲每個字符串可以有不同的長度(如果連接矩陣中的所有字符串,這是不正確的)。
然後你指定要找到這樣的單元陣列內,其字符串:
stringThatMustBeTested='NACA64A010';
現在你可以使用cellfun()
,這是適用另一個函數在給定單元陣列的每一個細胞如下功能:
results=cellfun(@(x) strcmp(x,stringThatMustBeTested),myStrings);
這種線僅僅意味着「應用strcmp()
每一個一般小區內x
和myStrings
細胞與stringThatMustBeTested
比較」。
變量results
將是一個邏輯輸出,其中元素j
將爲true,如果您的單元格數組中的第j個單元格與要測試的字符串相同。如果results
完全由1
s組成(您可以檢查爲if sum(results)==length(results)
),則myStrings
中的所有字符串都是相同的(假設stringThatMustBeTested
是單元格數組中的唯一字符串,但無論如何,此解決方案可以擴展爲更廣泛的字符串在單元格內搜索)。
我認爲你的例子應該使用{}而不是[]?否則它是一個字符串。 – Daniel
'numel(unique({'NACA64A010''NACA64A010''NACA64A010''NACA64A010'}))== 1'? – TroyHaskin
如果其中一個答案解決了您的問題,請點擊複選標記考慮[接受它](http://meta.stackexchange.com/q/5234/179419)。這表明你已經找到了解決方案,這不再是一個懸而未決的問題。如果您的問題沒有得到解答,請解釋缺少的內容。 – Daniel