ja do tej pory za pomocąjak stworzyć logiczną matrycę bezpośrednio w Matlab
a = logical(zeros(10,10))
do tworzenia matrycy logicznej.
Czy istnieje sposób na utworzenie go bezpośrednio?
ja do tej pory za pomocąjak stworzyć logiczną matrycę bezpośrednio w Matlab
a = logical(zeros(10,10))
do tworzenia matrycy logicznej.
Czy istnieje sposób na utworzenie go bezpośrednio?
Zastosowanie false bezpośrednio:
a = false(10,10);
logiczny typ danych Matlab nie wydaje się mieć konstruktora innego niż samej funkcji logical
. Mając na uwadze powyższe, można skutecznie typecast podwójną tablicę jako logiczną tablicę bardzo łatwo, gdzie wszystkie wartości niezerowe stać logika 1 i same zera logiczne 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
Można oczywiście skrapla ten przydział do jednej linii, jeśli” Tak więc staje się prawie tak proste, jak przypisanie dowolnego innego typu danych.
W programie Matlab istnieje kilka "stałych", które w rzeczywistości są komendami generującymi macierze. Są to:
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
Formy „stałe” są w zasadzie tylko pseudonimy:
a = inf; % alias for a = inf(1);
b = true; % alias for b = true(1);
itd. A oto kilka rzeczy, które nie mogą być powtarzane tyle:
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
wyjazdu link w mojej odpowiedzi - 'false' i' true' może być użyty tak jak 'zera' i' ones', aby bezpośrednio zainicjować matrycę logiczną, a nie podwójną precyzję. – tmpearce
Zgadzam się, ale to tylko inicjuje całkowicie prawdziwą lub całkowicie fałszywą tablicę - co może być w porządku, lub możesz chcieć bezpośrednio sterować wartościami. Czy potrafisz wykorzystać w ten sposób prawdę i fałsz? A może utknąłeś przy użyciu logicznej podwójnej tablicy? – nicktruesdale
Odpowiedź: jeśli nie masz nic przeciwko niezgrabnej składni dużych tablic, a = [false, true; false false] działa bezpośrednio. – nicktruesdale