MATLAB の基本演算、行列の乗算、配列行列のインデックス付け、最大値と最小値の演算子、ゼロ行列/ランダム行列/恒等行列の生成、対数関数、Inf と NaN の意味、ステートメントが長すぎる場合は、コネクタを使用して行を折り返す、論理演算子と違い

ヒント: 記事を作成した後、目次を自動的に生成できます。生成方法は、右側のヘルプドキュメントを参照してください。


序文

この記事では、主に行列の乗算、行列の生成、基本的な行列演算、配列のインデックス付け、最大値と最小値の演算子など、初心者に適した MATLAB プログラミングの基本的な演算をいくつかまとめています。


1. 行列の乗算

線形代数で 2 つの行列を乗算します。A*B などの記号「*」を使用して A と B の行列を乗算します。A の列数は B の行数と同じでなければなりません。
行列の対応する要素を乗算します。シンボル ポイントを使用して " . * " を乗算します。 A ポイントを使用して B を乗算し、A 行列と B 行列の対応する要素を乗算した結果を取得します。
コード例:
ここに画像の説明を挿入

2. マトリックスの生成

1. 直接入力

構文:
(1) [] 内に行列要素を入力します;
(2) 行列の同じ行の要素はカンマ ',' またはスペースで区切られます;
(3) 行列の異なる行はセミコロン ';' またはキャリッジで区切られます(4) [ ] が空の行列を意味する場合 (メモリを事前に割り当てるよう
求める警告が表示されます)。

コードは次のとおりです(例)。
ここに画像の説明を挿入

2. 恒等行列

文法:

A = eye(m,n)
m-行数目
n-列数目

コードは次のとおりです(例)。

コードは次のとおりです(例)。
ここに画像の説明を挿入

3. オールゼロ行列

文法:

A = zeros(m,n)
m-行数目
n-列数目

コードは次のとおりです(例)。

ここに画像の説明を挿入

2. オールワンマトリックス

文法:

A = ones(m,n)
m-行数目
n-列数目

コードは次のとおりです(例)。
ここに画像の説明を挿入

2. ランダム行列

文法:

A = rand(m,n)
m-行数目
n-列数目
rand 生成0-1之间的数,需要其他值的可以在后面加减乘除一个数
A = rand(m,n) * 10  生成取值为0-10的矩阵
A = rand(m,n) + 5  生成取值为5-15的矩阵
A = -rand(m,n)  生成取值为-1-0的矩阵

コードは次のとおりです(例)。
ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

3. 行列演算

1. 転置: シンボル一重引用符 '
A transpose=A'
2. 2 つの行列の接合: シンボル括弧 []
[A,B: A と B は水平に接合されます
[A;B]: A と B は接合されます垂直に

コードは次のとおりです(例)。
ここに画像の説明を挿入

4. 行列/配列のインデックス付け

画像を直接見てください。
コードは次のとおりです(例)。
ここに画像の説明を挿入

5、最大演算子と最小演算子

最大演算子 max
最小演算子 min
* 構文:

max([a,b,c,d,,,])——取出矩阵中的最大元素
max(A)——取出矩阵A中的最大元素
max([a,b,c,d,,,])——取出矩阵中的最小元素
max(A)——取出矩阵A中的最小元素

コードは次のとおりです(例)。
ここに画像の説明を挿入

6. 行列の合計 - 合計関数

1. ベクトル和
* 構文:

A = [1 2 3]
sum(A)——得到A矩阵所有元素的和
sum([4 5 6])——得到行向量4 5 6的和

コードは以下のとおりです(例)。
ここに画像の説明を挿入
ここに画像の説明を挿入
2. 列ごとの行列の合計
※構文:
sum(列ごとに合計する必要がある行列)

A = [1 2 3;4 5 6;1 1 1]
sum(A)

コードは以下のとおりです(例)。
ここに画像の説明を挿入
3. 行ごとの行列の合計
※構文:
sum(列ごとに合計する必要がある行列, 2)

A = [1 2 3;4 5 6;3 2 1]
sum(A,2)

コードは次のとおりです(例)。
ここに画像の説明を挿入

4. 行列のすべての要素の合計
*構文: 識別子 "all"
sum (合計される行列、'all') を追加します。

A = [1 2 3;1 2 3;4 5 6]
sum(A,'all')

コードは次のとおりです(例)。
ここに画像の説明を挿入

7、文が長すぎて改行できません

Matlab コード プログラムを作成する場合、コードが長すぎる場合があります。1 行が長すぎると、読み取りに適さず、エラーの特定が困難になります。解決策: 接続記号 (「...」) を使用し
ます
。 )
文法: 3 つのドットは接続記号
A = a+ b+...
cd-...
e

A = [1 2 3;1 2 3;4 5 6]
B= A(1,1)+A(1,2)+...
A(1,3)+A(2,1)-...
A(3,1)
结果:B= 1+2+3+1-4=3

コードは次のとおりです(例)。
ここに画像の説明を挿入

8. 論理演算子 (and または not、XOR、「&&」および「&」、「||」および「|」)

シンボル 意味
&
垂直線 また
いいえ
クソ XOR
任意(x) x 内のいずれかの要素がゼロ以外の場合は「1」を返し、それ以外の場合は「0」を返します。
すべて(x) x のすべての要素がゼロ以外の場合は「1」を返し、それ以外の場合は「0」を返します。

「&」および「|」演算子は、同じ次数の 2 つのスカラーまたは 2 つの行列を比較できます。行列は規則に従う必要があります。A と B が両方とも 0-1 行列である場合、A&B または A|B も 0-1 行列です。この 0-1 行列の要素は、A と A の対応する要素間の論理演算です。 B. の結果として、論理演算子はゼロ以外の要素が真であると仮定して「1」を与え、ゼロ要素は偽であると仮定して「0」を与えます。

上記の論理演算子に加えて、MATLAB では「&&」および「||」演算子も使用できます (&& および || は & および | の短絡形式と呼ばれます)。 Matlab の論理演算「&&」および「&」
、 「||」と「|」の違いは次のとおりです。

A&B
(1) Aの論理値を判定し、次にBの値を判定し、論理積演算を行います。
(2) A と B は行列にすることができます (例: A=[1 0]、B=[0 0])。
A&&B
(1) まず、A の論理値を判定します。A の値が false であれば、式全体の値が false と判定でき、B の値を判定する必要はありません。
(2) A と B は行列にはできません。スカラーのみです。
「|」は「||」と同じです。

A&&Bは、まずAの論理値を判定します。Aの値が偽であれば式全体の値が偽と判定でき、Bの値を判定する必要はありません。この使い方は非常に便利で、Aが計算量の少ない関数、Bが計算量の多い関数の場合、Aを先に判断して計算量を減らすと良いです。

9、MATLABのlog関数の表現

Matlab での対数の使用、log10、log2、および e に基づく対数は、MATLAB で提供されています。

表現 意味
ログ() e を底とする対数
log10() 10 を底とする対数
log2() 2 を底とする対数

10. Matlab における Inf と NaN の意味

Matlab の Inf と -Inf は、それぞれ正の無限大と負の無限大を表します。
NaN は数値以外の値を表し、通常、分母としての 0 または演算のオーバーフローによって発生し、結果が倍精度浮動小数点数の範囲を超えます。数値以外の値は 0/0 によるものです。または Inf/Inf 型の異常動作。

声明 意味
インフ 正の無限大
-Inf 負の無限大
NaN 数値以外の結果

注: 2 つの NaN は等しくありません

11. 複数の変数または行列に同時に値を代入する

多くの場合、複数の変数に値を代入する必要があります。一行ずつ書くと長くなるだけでなく、書くのが面倒です。複数の変数または行列に一度に値を代入できる操作は次のとおりです。つまり、関数 deal() を使用します。具体的なコードは次のとおりです

// 同时给多个变量或矩阵赋值
[Y1, Y2, Y3,] = deal(X);  %Y1=Y2=Y3=X
[Y1, Y2, Y3,] = deal(zeros(K,M));  %Y1=Y2=Y3,全部赋值为K*M维的零矩阵
[Y1, Y2, Y3,] = deal(X1, X2, X3,);  %Y1=X1,Y2=X2,Y3=X3,常数和矩阵都可以这样操作
[x,y,z]=deal(100);  %x,y,z同时初始化为100
[a,b,c]=deal(‘mat’,'lab’,'sky’); %对a,b,c分别初始化为mat,lab,sky

12. MATLAB の丸め関数と剰余関数

1.丸め機能

関数名 効果
修理 ゼロに向かって丸める
(floor) 切り捨て、つまり、負の無限大に向かって丸めます。
天井 (天井) 切り上げ、つまり正の無限大に向かって丸めます。
ラウンド 最も近い整数に丸める

コード例:

%%fix函数
fix(-1.3)=-1;
fix(1.9)=1

%%floor函数
floor(-1.3)=-2;
floor(1.3)=1;

%%ceil函数
ceil(-1.3)=-1;
ceil(1.3)=2;
	
%%round函数
round(-1.52)=-2;
round(1.3)=1

2. 剰余関数
(1) MATLAB には似た関数が 2 つあります: 1 つは modulo (mod)、もう 1 つは rem (rem) です。この 2 つの違いは次のとおりです: x と y の符号が同じであるとき、 のとき
、 2 つの関数の結果は同じです。
x と y の符号が異なる場合、rem 関数の結果は x と同じ符号を持ち、mod は y と同じ符号を持ちます。

(2)符号の異なる2 つの整数のモジュロ原理

先将两个整数看作是正数,再作除法运算
能整除时,其值为0
不能整除时,其值=除数×(整商+1)-被除数

要約する

この記事では、行列の乗算、配列行列のインデックス付け、最大値と最小値の演算子、ゼロ行列/ランダム行列/単位行列の生成、対数関数の式、ステートメントが長すぎる場合の Inf と NaN の意味など、MATLAB の基本的な操作をいくつかまとめています。 、接続改行ステートメント、論理演算子、および区別を使用します。

おすすめ

転載: blog.csdn.net/qq_45296693/article/details/130461814