2017-01-04 11 views
1

私はMatlab GUIでテキストを印刷するのに苦労します。 、1,1:私はこの数字を得たMatlabで条件が満たされている場合にのみテキストボックスに書き込み

問題がある
if Lia == ismember(handles.T(1:3),(1,1,1)) 
    set(handles.t1, 'String', 'good day'); 
end 

、私は1から3に私の配列インデックスでいるかどうかを確認する方法がわからない:

は、私は私のコールバックでは、このようなコードを持っています1。私はドキュメントを見ていましたが、それについては何も言わないようです(または私は単に適切な答えを見つけることができません)。

答えて

1

単純にallを使用し、配列の最初の3つのスロットのすべての要素が明示的に1の値と一致するかどうかを確認することができます。私はあなたの配列の形状を知らないので、それを列ベクトルにするつもりです。配列の最初の3つのスロットは、行または列ベクトルであり、私達は1の値はそれぞれの列または行ベクトルであると仮定ならば、あなたはかなり不愉快な驚き取得するつもりだ場合:

h = handles.T(1:3); 
if all(h(:) == [1; 1; 1]) 
    set(handles.t1, 'String', 'good day'); 
end 

注意を配列内のすべての要素を単一の値で比較しているので、私は単純にall(h(:) == 1)を特殊なケースとして実行することができました。しかし、私はこれがあなたのために変わるかもしれないと感じているので、後で比較したい内容を変更できるように、明示的に1のベクトルを作ることに決めました。

+0

私がT(4:6)を入れた場合、この方法は機能しますか? – soommy12

+0

別の3つの要素を別の条件でチェックしたいのですが(同じコードですが、配列内の要素が異なる) – soommy12

+0

@Buszmanはい、できます。配列の終わりまで3つの要素をチェックし、異なるベクトルを持つ3つの要素それぞれをチェックしたい場合、それは可能ですが、より多くのコードが必要になります。 – rayryeng

関連する問題