我必須在Matlab中創建一個給定參數N的函數,它將返回N乘N單位矩陣。我不能使用循環,也不能使用內置函數,如eye
或diag
。我曾嘗試以下:Matlab中的恆等矩陣
function I = identity(n)
I = zeros(n,n);
p = [1:n;1:n]';
I(p) = 1;
end
但是,當我與I = identity(3);
我得到以下結果稱之爲:
I =
1 0 0
1 0 0
1 0 0
而且我不明白爲什麼,因爲我覺得Matlab的可以使用矢量作爲矩陣索引,我所採取的方式,我有:
p =
1 1
2 2
3 3
所以,當我做I(p) = 1
,第一步應該是I(1,1) = 1
然後I(2,2) = 1
等。我沒有看到什麼?
我看到我們有一個類似的想法:) +1 –
@ Benoit_11是的,這就是它的結局! – Divakar