2012-05-10 70 views
1

陣列我想comapre串 我怎麼會影響下面的值abcd的兩個陣列,當我嘗試如下,我得到一個錯誤如何比較與MATLAB

[a,b,c,d] = getVal(x); 
    =>this will gives : 
a = 

a 
b= 

0 
c = 

10 
d = 
[] 

我有:

expected = {'a','0','10',[]}; 

我怎麼能讓之間[A,b,C,d]和預期相比如何?

+1

可能重複http://stackoverflow.com/questions/2337126 /我在做什麼 - 多重任務在matlab) –

+0

我已經更新我的問題,通過ginving值 – lola

回答

2

錯誤1

=是賦值運算符。

比較運算符是==


錯誤2

MATLAB陣列一般不抱字符串。他們持有號碼或單個字符。

>> b = ['a','0','10','20'] 

b = 

a01020 

要知道爲什麼[a,b,c,d] = ['a','0','10','20']不起作用,考慮一下:

>> [a,b,c,d] = 'a01020' 
??? Too many output arguments. 

你試圖把六個字符分爲四個桶。不工作。

您可能意味着建立一個單元陣列:

>> c = {'a','0','10','20'} 

c = 

    'a' '0' '10' '20' 

Matlab的陣列數值矩陣,而不是通用的列表容器。

+0

如果我只想影響值的阿里,我得到錯誤 – lola

+0

如何顯示值列中不行? – lola

+0

我想要做的就是將每個字符串影響到表 – lola

2

從立昂的回答繼,你可能想要的是像

isequal({a,b,c,d}, {'a', '0', '10', '20'}) 

這將返回true IFF a具有價值'a'等。

編輯

要完成多重任務,您可以使用DEAL

[a,b,c,d] = deal('a', '0', '10', '20') 
的[我該怎麼做在MATLAB多重分配?(
+1

我認爲我們有一個非常強大的語言障礙的效果。通過「比較」她真的意味着「分配」。 –

+0

我已更新我的問題 – lola