我有一些Matlab代码,在操作之前检查数组是否为非零,但即使数组是3乘以1000+,它也被跳过了。
代码只是:if X
该数组是使用“xlsread”从Excel文件中读取的,并且仅对特定数据文件给出错误,但对我使用的任何其他输入数据文件都有效。
有什么想法吗?
>> A = rand(100, 3) + 1;
>> if A; disp('True'); else disp('False'); end
True
>> A(35) = 0;
>> if A; disp('True'); else disp('False'); end
False
如果您想检查数组是否仅包含零,可以使用 any
关键字:
>> A = rand(100, 3) + 1;
>> A(35) = 0;
>> if any(A(:)); disp('True'); else disp('False'); end
True
>> A = 0 * A;
>> if any(A(:)); disp('True'); else disp('False'); end
False
编辑:
抱歉,正如SCFrench在评论中提到的那样,请使用any(A(:))
来测试数组中的每个元素,而不是any(A)
- 这已经在我上面的答案中得到了适当的编辑。