在matlab中从两个不同的矩阵生成绘图矩阵

时间:2013-05-11 08:42:52

标签: matlab matrix plot

我有两个矩阵(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

1 个答案:

答案 0 :(得分: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)));