首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在MATLAB中不使用循环或嵌套循环操作创建矩阵

在MATLAB中不使用循环或嵌套循环操作创建矩阵
EN

Stack Overflow用户
提问于 2012-09-08 10:32:27
回答 1查看 936关注 0票数 2

我想在不使用任何循环的情况下创建一个矩阵,就像我在MATLAB 2011a中为形成矩阵n(x,y)所做的以下程序一样。

segment1segment2具有相同的维度(可以取任意两个矩阵)。

代码语言:javascript
运行
复制
segment1 = [1 2 3;4 5 6];
segment2 = [5 2 6;9 1 2];

seg1_max = max(max(segment1));
seg2_max = max(max(segment2));

n = zeros(seg1_max, seg2_max);
i = 1; j = 1;

while i<=size(segment1, 1)        
    while j<=size(segment1, 2)    
        x = segment1(i, j);
        y = segment2(i, j);
        n(x,y) = n(x,y)+1;
        j = j+1;    
    end;
i = i+1; j = 1;
end;

我也使用for loop编写了这个程序,但是我想不使用循环操作来获得矩阵n(x,y)。

EN

Stack Overflow用户

回答已采纳

发布于 2012-09-08 11:27:57

函数accumarray可以用于此目的。给定您的segment1segment2,下面的代码将计算与您的n相同的m

代码语言:javascript
运行
复制
x = segment1(:);
y = segment2(:);
m = accumarray([x y], ones(size(x)));
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12327589

复制
相关文章

相似问题

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