是否有可能获得如下矩阵?
输入向量是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获得这样的矩阵...请帮助....我不知道如何做到这一点....提前感谢...
答案 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 ;
但是,根据您想要达到的目标,可能有更好的方法。