创建方形单位矩阵

时间:2015-07-28 07:00:32

标签: matlab matrix

编写一个名为identity的函数,它创建一个方形单位矩阵,它是一个矩阵,其元素为0,但对角线上的元素(从左上角到右下角)的值为1。对角线由行和列索引相同的元素组成:(1,1),(2,2)等

该函数接受一个正整数输入参数,该参数是矩阵的大小,并将矩阵本身作为输出参数返回。

例如,identity(4)必须返回一个4乘4的单位矩阵。

您不能使用内置的eyediag功能。

(提示:您可以使用单个索引索引到矩阵,MATLAB将处理它,就好像它是使用列主要顺序的向量一样。)

3 个答案:

答案 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