私はこれまで使用してきました
a = logical(zeros(10,10))
論理行列を作成します。
直接作成する方法はありますか?
falseを直接使用します。
a = false(10,10);
Matlabには、実際には行列を生成するコマンドである「定数」がいくつかあります。彼らです:
true(10); true(n,m,k,..); % for an all-true 10-by-10 or n-by-m-by-k-by-...matrix
false(10); false(n,m,k,..); % for an all-false 10-by-10 or n-by-m-by-k-by-...matrix
inf(10); inf(n,m,k,..); % for an all-inf 10-by-10 or n-by-m-by-k-by-...matrix
nan(10); nan(n,m,k,..); % for an all-nan 10-by-10 or n-by-m-by-k-by-...matrix
「定数」形式は基本的に単なるエイリアスです。
a = inf; % alias for a = inf(1);
b = true; % alias for b = true(1);
など。また、十分に繰り返すことができないいくつかの事柄があります:
rand(10); rand(n,m,k,..); % for an all-random 10-by-10 or n-by-m-by-k-by-...matrix
zeros(10); zeros(n,m,k,..); % for an all-zero 10-by-10 or n-by-m-by-k-by-...matrix
zeros(n,m,k,...,'uint8'); % for an all-zero n-by-m-by-k-by-...matrix of type uint8
ones(10); zeros(n,m,k,..); % for an all-one 10-by-10 or n-by-m-by-k-by-...matrix
ones(n,m,k,...,'uint8'); % for an all-one n-by-m-by-k-by-...matrix of type uint8
eye(10); eye(n,m,'uint8'); % for an identity matrix of type uint8 of 10-by-10 or n-by-m
logical
Matlabの論理データ型には、関数自体以外のコンストラクターがないようです。そうは言っても、double配列を論理配列として非常に簡単に型キャストできます。ここで、すべての非ゼロ値は論理1になり、すべてゼロは論理0になります。
A = [1 0 2; -1 0 0; 0 1.53 -100.00]
B = logical(A)
B =
1 0 1
1 0 0
0 1 1
必要に応じて、この割り当てを1行にまとめることができるので、他のデータ型を割り当てるのとほぼ同じくらい簡単になります。