gpt4 book ai didi

matlab - Matlab 中的单位矩阵

转载 作者:太空宇宙 更新时间:2023-11-03 20:11:42 27 4
gpt4 key购买 nike

我必须在给定参数 N 的 Matlab 中创建一个函数,它返回 N×N 单位矩阵。我不能使用循环,也不能使用 eyediag 等内置函数。我尝试了以下方法:

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 等等。我没有看到什么?

最佳答案

不使用函数,只使用 matrix indexing -

A(N,N) = 0;
A((N+1)*(0:N-1)+1) = 1

因此,函数变为-

function A = identity( N )
A(N,N) = 0;
A((N+1)*(0:N-1)+1) = 1;
end

关于matlab - Matlab 中的单位矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29810158/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com