编写一个名为identity
的函数,它创建一个方形单位矩阵,它是一个矩阵,其元素为0,但对角线上的元素(从左上角到右下角)的值为1。对角线由行和列索引相同的元素组成:(1,1),(2,2)等
该函数接受一个正整数输入参数,该参数是矩阵的大小,并将矩阵本身作为输出参数返回。
例如,identity(4)
必须返回一个4乘4的单位矩阵。
您不能使用内置的eye
或diag
功能。
(提示:您可以使用单个索引索引到矩阵,MATLAB将处理它,就好像它是使用列主要顺序的向量一样。)
答案 0 :(得分:2)
让我们用两个简单的行来完成它而没有zeros
...第一行创建一个n x n
矩阵,其中所有元素都是0
。你可以(如你的提示所说)用一个参数解决元素。单位矩阵中的距离为n+1
。这样你就可以写出具有上述距离的那些直到最后。
function out = identity(n)
out(n,n) = 0;
out(1:n+1:end) = 1;
end
答案 1 :(得分:1)
你可以从基础知识开始:
Task.Delay(10000).ContinueWith(x =>
{
//...
});
与其他任何语言几乎相同的代码......
答案 2 :(得分:0)
假设您可以使用内置函数zeros()
,eye()
功能的可能实现如下:
function matrix = identity(n)
out = zeros(n);
idx = 1:n+1:n^2;
out(idx) = 1;
matrix = out;
end