Sök…


Alla och alla med tomma matriser

Man måste vara särskilt försiktig när det finns en möjlighet att en matris blir en tom matris när det gäller logiska operatörer. Det förväntas ofta att om all(A) är sanna måste any(A) vara sanna och om any(A) är falsk måste all(A) också vara falska. Det är inte fallet i MATLAB med tomma matriser.

>> any([])
ans =
     0
>> all([])
ans =
     1

Så om du till exempel jämför alla element i en matris med en viss tröskel, måste du vara medveten om fallet där matrisen är tom:

>> A=1:10;
>> all(A>5)
ans =
     0
>> A=1:0;
>> all(A>5)
ans =
     1

Använd den inbyggda funktionen isempty att kontrollera om tomma matriser:

a = [];
isempty(a)
ans =
1


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow