首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何求出两个三维矩阵的并值?

如何求出两个三维矩阵的并值?
EN

Stack Overflow用户
提问于 2015-07-19 22:14:39
回答 1查看 175关注 0票数 0

我有两个三维矩阵A和B,A和B的大小都是40*40*20倍。矩阵A和B中的值要么为0,要么为1。A中的"1“数为100,B中的"1”数为50。矩阵A和B中的"1“可能在同一坐标下,也可能不在同一坐标下。我想得到矩阵A和B的并,称为C,三维矩阵C中的值要么是"1“,要么是"0”。C中"1“的数目小于或等于150。我的问题是如何在Matlab中得到三维矩阵C?

EN

回答 1

Stack Overflow用户

发布于 2015-07-20 05:50:08

你可以用两种方式来接近它。更有效的方法是使用向量,但也可以在经典的嵌套for循环中这样做。

代码语言:javascript
复制
A = rand(40,40,20);
A = A > 0.01; # Get approximate 320 ones and rest zeros
B = rand(40,40,20);
B = B > 0.005; # Get approximate 160 ones and rest zeros
C = zeros(size(A));
for iter1 = 1:size(A,1)
    for iter2 = 1:size(A,2)
        for iter3 = 1:size(A,3)
            C(iter1,iter2,iter3) = A(iter1,iter2,iter3)|B(iter1,iter2,iter3)
        end
    end
end

这种方法会很慢。您可以将其向量化以提高性能。

代码语言:javascript
复制
C = A|B
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31506483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档