0

我有两个矩阵(5_by_1),说 A=[5 行,1 列] 和 B=[5 行,1 列] 如果我绘制(A,B),我将创建一个大矩阵 C=[5 行, 5列]赖特?!

现在我想创建这个大矩阵而不绘制它。我直接想要这个矩阵。谢谢你。例如A=[1 2 3 4 5 ]B=[3 4 2 1 4]

c=

 0     1     0     0     0
 1     0     0     0     1
 0     0     1     0     0
 0     0     0     1     0
4

1 回答 1

0

这应该有效:

a = [1 2 3 4 5];
b = [3 4 2 1 4];

c = flipud(sparse(b,a,1,4,5));

如果您想查看完整的 c:

full(c)

或者如果您有更大的版本:

c = flipud(sparse(b,a,1,max(b),max(a)));

命令是将flipud矩阵倒置。

希望这会有所帮助=)

编辑:

“移动”矩阵,使您的最低值在 (1,1) 中(在翻转之前)。结构是正确的,但起源不容易发现。

a_1 = floor(a - min(a)) + 1;  % floor if you don't have integers.
b_1 = floor(b - min(b)) + 1;

c = flipud(sparse(b_1,a_1,1,max(b_1),max(a_1)));
于 2013-05-11T08:54:05.120 回答