1

文字列の 2 つの配列を比較したいのですが、次の値にどのように影響を与えることができますかa, b, c,d以下のようにしようとすると、エラーが発生しました

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

a
b=

0
c =

10
d =
[]   

そして、私が持っています :

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

[a,b,c,d] と expected を比較するにはどうすればよいですか?

4

2 に答える 2

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.

6 つの文字を 4 つのバケットに入れようとしています。うまくいきません。

cell 配列を作成するつもりだった可能性があります。

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

c = 

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

Matlab 配列は数値行列であり、汎用のリスト コンテナーではありません。

于 2012-05-10T12:18:17.973 に答える
2

Li-aungの答えに続いて、おそらくあなたが望むのは次のようなものです

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

これは、値がある場合trueなどを返します。a'a'

編集

複数の割り当てを実行するには、DEAL を使用できます

[a,b,c,d] = deal('a', '0', '10', '20')
于 2012-05-10T12:26:54.957 に答える