matlab if 判断一个矩阵是判断都为1,只要有一个不为1,就返回false

1
2
3
4
5
6
7
8
>> a = ones(512,512);
if a
disp("This is true");
else
disp("This is false");
end

This is true
1
2
3
4
5
6
7
8
>> a(1,1) = 0;
if a
disp("This is true");
else
disp("This is false");
end

This is false

如果只是要判断矩阵有大于1的数,就希望返回true,可以用any

1
2
3
4
5
6
7
8
9
>> a = ones(512,512);
a(1,1) = 0;
if any(a,'all')
disp("This is true");
else
disp("This is false");
end

This is true

⚠ 如果要判断矩阵都为0的时候,希望返回true,不可以用isempty,isempty只是针对空数组才返回0,zeros数组可不为空

1
2
3
4
5
6
7
8
>>> a = zeros(512,512);
if isempty(a)
disp("This is true");
else
disp("This is false");
end

This is true

总结

在Matlab中,我们可以使用if语句来判断一个矩阵中的元素是否全为1。如果矩阵中的所有元素都是1,那么条件为真,返回true;如果存在至少一个不为1的元素,那么条件为假,返回false。另外,如果我们只是想判断矩阵中是否存在大于1的数,可以使用any函数。当矩阵中存在大于1的数时,条件为真,返回true;否则,条件为假,返回false。通过这样的判断,我们可以根据需要编写相应的代码逻辑。