[英]Use the command if any in a 3D array in Matlab
我有一個這樣的n×by-by-by-3多維數組:
val(:,:,1)=
1 0 1 1 1
1 0 1 1 1
1 0 1 1 1
1 1 1 1 1
1 1 1 0 1
1 1 1 0 1
1 0 1 1 1
val(:,:,2)=
1 1 1 1 1
1 1 1 0 1
1 1 1 0 1
1 0 1 1 1
1 0 1 1 1
1 0 1 1 1
1 1 1 1 1
val(:,:,1)=
1 1 0 1 1
1 1 0 1 1
1 1 1 1 1
1 0 1 1 1
1 0 1 1 0
1 1 1 1 0
1 1 1 1 0
我想對Matlab說:對於每一行,檢查是否有任何元素是0,然后創建一個n×by-by-3矩陣(或者3 n-by-1矩陣)的類型:
val(:,:,1)=
1
0
0
1
1
其中0對應於“是,該行的至少一個元素是0”,1對應於“否,該行的每個元素都是1”。
我試過了
for a = 1:n
for b = 1: 3
if any (A,2) ==0
B (n,1,3)= 0;
else
B (n,1,3)= 1;
end
end
end
要不就:
B= any(A,2) ==0
但它不起作用,我總是得到一個(n,1,3)全零的數組。
非常感謝!
你在尋找什么
~all(val, 2)
您可以使用
any(~val, 2)
如果你堅持使用any
。
一些MATLAB函數接受一個參數,該參數指定要應用它們的維度。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.