找到两个数组之间的最大值,然后连接max数组的单元格

时间:2013-11-22 06:20:51

标签: matlab

我为此编写了一个Matlab代码并且运行良好。但我想知道它是否是最佳的。如果没有,所以我需要你的帮助来编写更优的代码..

首先,我想解释一下我的工作概念:

让我们考虑2个阵列 tab1 tab2 。 (是两个矩阵阵列)

第一步 :这两个数组之间的最大值为tab3

第二步:我想连接tab3的单元格

这是我的MATLAB代码:

clear all;
close all;
clc;

I1=[1 2 3
    4 5 6]
B1=[5 6 4
    3 4 2]
c1=[2 5 4
    1 2 5]
d1=[2 8 9
    0 1 2]


I2=[4 7 6
    3 2 4]
B2=[4 6 5
    2 3 5]
c2=[6 7 2
    1 7 6]
d2=[8 6 3
    3 6 5]


%tab1 and tab2 
tab1={I1,B1
    c1,d1}

tab2={I2,B2
    c2,d2}

[n,m]=size(tab1) % or [n,m]=size(tab2) because tab1 and tab2 have the same size

%find the maximum between tab1 and tab2 and then put the result into tab3
for i=1:n
    for j=1:m
        tab3{i,j}=max(tab1{i,j},tab2{i,j});
    end
end

for i=1:n
    if(i==1)
        x=cat(2,tab3{i,1:m});    
    else
y=cat(1,x,cat(2,tab3{i,1:m}));
x=y;
    end
end
%display the concatenation 
x

1 个答案:

答案 0 :(得分:0)

这是一种方法:

x=max(cell2mat(tab1), cell2mat(tab2))