矩阵运算,其中值可以表示为一组

时间:2014-08-20 15:58:44

标签: matlab image-processing matrix

是否有可能获得如下矩阵?

输入向量是X(列向量)和Y(行向量)

 X=[2                       Y=[5 3 1 2 4]-1*5 vector
    4
    5
    3
    1]-5*1 vector

两个向量都将索引值作为元素。现在我想要一个5 * 5矩阵,如下所示:

 Z= (2,5) (2,3) (2,1) (2,2) (2,4)
    (4,5) (4,3) (4,1) (4,2) (4,4)
    (5,5) (5,3) (5,1) (5,2) (5,4)
    (3,5) (3,3) (3,1) (3,2) (3,4)
    (1,5) (1,3) (1,1) (1,2) (1,4)

Z-5 * 5矩阵

是否有可能使用matlab获得这样的矩阵...请帮助....我不知道如何做到这一点....提前感谢...

2 个答案:

答案 0 :(得分:2)

这是使用单元格数组而不是常规数组的替代解决方案:

XX=meshgrid(X);
YY=meshgrid(Y);
C=reshape(num2cell([XX(:) YY(:)],2),numel(X),[]);

结果将是5x5单元阵列,

C = 
[1x2 double]    [1x2 double]    [1x2 double]    [1x2 double]    [1x2 double]
[1x2 double]    [1x2 double]    [1x2 double]    [1x2 double]    [1x2 double]
[1x2 double]    [1x2 double]    [1x2 double]    [1x2 double]    [1x2 double]
[1x2 double]    [1x2 double]    [1x2 double]    [1x2 double]    [1x2 double]
[1x2 double]    [1x2 double]    [1x2 double]    [1x2 double]    [1x2 double]

每个元素将包含2个数字。例如:

 C{2,2}
 ans =  
     4     3

答案 1 :(得分:1)

也许这就是你想要的:

Z = cat(3, repmat(X, 1, size(Y,2)), repmat(Y, size(X,1), 1));

这会构建一个3D数组Z,以便Z(m,n,:)为您的"矩阵提供 m n 条目&#34 ;

但是,根据您想要达到的目标,可能有更好的方法。