-1
我試圖實現MATLAB以下八度命令:相當於MATLAB的倍頻命令
M = eye(x)(y,:);
x
只是一個數字(在我的例子10
)和y
是一個向量(這裏8X1) :
y = [1 3 4 5 7 10 9 10];
的倍頻命令將產生:
M =
1 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 0 1
這些人保持非常接近對角線。
我帶着MATLAB最近的是用下面的命令:
n = size(y,1);
Y = eye(n, x);
但它會產生什麼仍然是不同的。如果行和列之間的差異變大,則會有很大的不同。
M =
1 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 0 1 0 0
我怎樣才能得到MATLAB的第一個矩陣?
您的第一個M數組的第6行很尷尬......您確認了嗎? – Ratbert
你不能像MATLAB那樣鏈接索引,你必須把'eye(x)'放在一個臨時變量中。 – beaker
你能舉個例子嗎,燒杯? –