比較, 関係演算子
a==b a~=b or a<>b a<b a<=b a>b a>=b
等値比較a==b, a~=b
a<>bの場合は任意の変数の型とすることができ,
順序が関連する比較a<b,
a<=b, a>b,a>=b
に関しては,浮動小数点の実数および整数の配列に制限されます.
等値比較 a==b, a~=b
a< > b の場合は任意の変数の型とすることができ,
順序が関連する比較
a<b, a<=b,
a>b,a>=b
に関しては,浮動小数点の実数および整数の配列に制限されます.
2つの暮らすの演算士は区別する必要があります:
a==b, a~=b (または等価な a<>b).
これらの演算子は任意のオペランドの型に適用できます.
a<b, a<=b,
a>b,a>=b. これらの演算子は
浮動小数点の実数および整数の配列にのみ適用されます.
比較演算子のセマンティクスもオペランドの型に依存します:
浮動小数点の実数および整数配列, 論理値配列, 文字列配列,多項式または有理配列,ハンドル配列,リスト... のような配列変数の場合,以下の規則が適用されます:
aおよび b を
同じ型,同じ次元の配列として評価する場合,
要素毎の比較が行われ,
結果は同じ次元の論理値の配列となります.
If a および b が
型は同じだが
aまたはbが1行1列の配列の場合,
このスカラーが別の配列の各要素と比較されます.
この結果はスカラーでないオペランドの大きさの論理値の配列となります.
その他の場合,
結果は論理値 %f となります.
オペランドのデータ型が異なるが浮動小数点と整数のように 互換性がある場合,比較の前に型変換が行われます.
functionや
librariesのようなその他のオペランドの場合,
結果はオブジェクトが同じ場合に%t,
それ以外の場合に %f となります.
互換性がないデータ型の間の等値比較は
%fを返します.
//用途毎の比較 (1:5)==3 (1:5)<=4 (1:5)<=[1 4 2 3 0] 1<[] list(1,2,3)~=list(1,3,3) "foo"=="bar" sparse([1,2;4,5;3,10],[1,2,3]) == sparse([1,2;4,5;3,10],[1,2,3]) //オブジェクト毎の比較 (1:10)==[4,3] 'foo'==3 1==[] list(1,2,3)==1 isequal(list(1,2,3),1) isequal(1:10,1) //型変換を伴う比較 int32(1)==1 int32(1)<1.5 int32(1:5)<int8(3) p=poly(0,'s','c') p==0 p/poly(1,'s','c')==0 | ![]() | ![]() |