簡體   English   中英

在Matlab中的3D數組中使用命令(如果有)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM