我必须在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