MathWorks社のMATLAB - MATLAB研究は10ノート一緒に学びます
10_3関係演算子、および論理演算子
一緒に相互学習を議論することを歓迎し、便利な検索- フォローミー
参考図書
「MATLABプログラミングと統合されたアプリケーションは、」張Defengは張さんの本に感謝を待っているので、私は便利なMATLABを感謝し
、「MATLAB技術バイブル」のGe GeのChaodengは先生の本のおかげで編集したので、私は感謝し、効率的なMATLAB
関係演算子
% 示例:关系运算符的用法
format compact % 以紧凑形式的方式输出,以何种方式输出的格式化语句应当事先定义
a=[1 2;3 4]
b=[1 1;1 1]
a>1
a<3
a>=2
a<=2
eq(a,b) %注意a和b的shape应该相同
a==1 %找出a中等于1的元素
a~=b
a =
1 2
3 4
b =
1 1
1 1
ans =
0 1
1 1
ans =
1 1
0 0
ans =
0 1
1 1
ans =
1 1
0 0
ans =
1 0
0 0
ans =
1 0
0 0
ans =
0 1
1 1
論理演算および論理機能
論理的および論理的な機能は、NOT、XOR四つの基本的な論理演算、コンピュータ言語で流行しているMATLABであって、または。値「1」に付与された論理演算のMATLABシステムの結果に「true」または「false」である論理の量の論理関数に対する論理式の値が「偽」を表す「0」を論理「真」を表します。しかし、決定された量と同様に、「偽」の任意の非ゼロ値を0に「真」である「真」。MATLABは、基本的な操作部としての論理演算の行列です。
論理演算
例
** Mがファイルで使用されてもよく、(A、B)、又は(A、B)ではなく(A)「と」、「や」*「でない」操作の結果であり、オペレータが得られ一貫**
論理関数
すべての非ゼロ数のすべての要素かどうかを決定します
A=[0 1 2;3 4 5]
disp('all(A)')
all(A)
disp('all(all(A))')
all(all(A)) % 按照列进行操作
disp('A>=1')
A>=1
disp('all(A>=1)')
all(A>=1)
% 判断一个矩阵中的所有元素是否都大于等于1 all(all(A>=1))=1
A =
0 1 2
3 4 5
all(A)
ans =
0 1 1
all(all(A))
ans =
0
A>=1
ans =
0 1 1
1 1 1
all(A>=1)
ans =
0 1 1
注意:MATLAB添字インデックスは1から始まります
A=[0 1 2;3 4 5]
disp('all(A)') % 按照列的殊顺序
all(A)
disp('all(A,2)') % 按照行的顺序
all(A,2)
c=rand(1,2,3)
all(c)
A =
0 1 2
3 4 5
all(A)
ans =
0 1 1
all(A,2)
ans =
0
1
c(:,:,1) =
0.6787 0.7577
c(:,:,2) =
0.7431 0.3922
c(:,:,3) =
0.6555 0.1712
ans(:,:,1) =
1
ans(:,:,2) =
1
ans(:,:,3) =
1
ゼロ以外の数値は、ベクトル要素があるかどうかを決定します
>> A=[0 1 2; 0 3 4]
A =
0 1 2
0 3 4
>> any(A)
ans =
0 1 1
>> any(A,2)
ans =
1
1
ビュー変数が存在しないか、機能が存在するかどうか
検索:非ゼロ要素の位置識別子のベクトルまたは行列を見つけます
在许多情况下,都需要对矩阵中符合某一特定条件的元素的位置进行定位,如将某一矩阵中为零的元素设为1等。如果这个矩阵的元素非常多,手工修改非常麻烦,灵活运用find函数和各种逻辑及关系运算可以是实现绝大多数条件的元素定位。find函数的基本用法有k=find(A),[i,j]=find(A),[i,j,v]=find(A),这是个很有用的逻辑函数,在对数组元素进行查找,替换和修改变化等操作中占有非常重要的地位。
k=find(A)
此函数返回由矩阵A的所有非零元素的位置标识组成的向量。如果没有非零元素会返回空值。
二维数组先寻找列再寻找行
三维数组寻找值
[i,j]=find(A)
此函数返回矩阵A的非零元素的行和列的表示,其中i代表行标而j代表列标。此函数经常用在稀疏矩阵中。在多维矩阵中通常将第一维用i表示,将其余各维作为第二维,用j表示。
[i,j,v]=find(A)
此函数返回矩阵A的非零元素的行和列的标识,其中i代表行标而j代表列表,同时,将相应的非零元素的值放入列向量v中,即i和j的值与[i,j]=find(A)取值相同,只是增加了非零元素的值这一项
利用find()函数实现部分矩阵的替换
isfinite:确认矩阵元素是否为有限值
isempty:确认矩阵是否为空矩阵
不要把空矩阵、零矩阵及矩阵不存在3个概念混淆,空矩阵说明矩阵存在,但是矩阵没有元素;零矩阵是指矩阵的所有元素都为零;矩阵不存在是指当前的工作空间中没有定义此矩阵变量。isempty(A)可以判断一个存在的矩阵变量是否为空矩阵,如果矩阵为空矩阵则返回逻辑“真",否则返回逻辑“假",一个空矩阵至少有一维是零,如0×0、0×5、0×3×3等。空矩阵没有任何元素,可以用函数size(A)来判断,如果其中有一维为零,则A就是零矩阵。(因为还有其他多个维度有可能其中只有方括号但是没有值)
isequal:判断几个对象是否相等
マトリックスのためのオブジェクトA、B、C ...と同じタイプの、サイズおよびコンテンツのすべてかどうかを決定する(A、B、C ...)関数isequal、マトリックスは全て同じ寸法であり、そして行列要素このような条件が満たされている場合、同じ値が、関数であれば、オブジェクトと他のオブジェクトが同一ではないとして、それは論理「偽」に戻り、論理「真」、およびその逆を返します
ISNUMERIC:オブジェクトデータであるかどうかを決定します
IsNumeric関数(A)等疎行列、倍精度行列、複素行列のようなデータ行列場合、この関数は論理「真」を返し、等であれば、文字列A、マトリックス構造、一方、論理は「偽」を返します
他の論理機能
issparseスパースか否かを判断
isstrは列か否かを判断
ISLOGICALマトリックスは、論理行列か否かが判断される
ドメインの構造についてisfieldの決意対象行列かどうか
、それが構造isstruct決定されているか否かを
ishandleを画像ハンドルかどうかを判断します