0

重複の可能性:
配列をmatlabと比較する方法

これが私が探しているものの例です:

[a,b,c,d] = getVal(x);

これにより、次のようになります。

a =
    a

b=
    0

c =
    10

d =
    []   

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

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

[a,b,c,d]と期待値を比較するにはどうすればよいですか?だけを呼び出すとgetVal(x)、最初の値だけが表示され、次のように記述します。

[a,b,c,d] = getVal(x)

次に、ログにすべての値を取得しました。私が電話するとき、なぜこれが当てはまらないの
getVal(x)ですか?比較のために私は試しました:

isequal([a,b,c,d], expected {1:end})

しかし、それは機能しません、私の問題を解決する方法はありますか?

4

1 に答える 1

0

a、、、bを行列cに入れようとしないでください。dそれはスペースを追加します。代わりに、次の場合と同じように、セル配列を使用してくださいexpected

>> a='a'; b='0'; c='10'; d=[];
>> expected = {'a','0','10',[]};
>> isequaln({a,b,c,d}, expected)

ans =

     1

getVal(x)また、単に呼び出すだけではすべての値が得られない理由についても質問しました。これは、MATLABでは、関数が出力パラメーターの数、つまり代入の左側にある変数の数に反応する可能性があるためです(多くの場合、反応します)。getVal4つの出力パラメーターで呼び出された場合、関数は4つの値を返します。特別なことを何もしない場合は、ゼロまたは1つの出力パラメーターを指定して呼び出すと、これらの値の最初の値のみが返されます(例では)'a'。これらの4つの値すべてを含むセル配列が必要な場合は、次のようにします。

[a, b, c, d] = getVal(x)
{a, b, c, d}
于 2012-05-10T13:36:09.557 に答える