在没有循环的情况下将 1 索引到零矩阵中
Indexing ones into a matrix of zeros without loops
我是 MATLAB 的新手,我需要一些帮助来解决这个问题。
问题是编写一个函数,创建一个由零和反向对角线上的 1 组成的 (n-n) 方阵
我试过这段代码:
function s=reverse_diag(n)
s=zeros(n);
i=1;j=n;
while i<=n && j>=1
s(i,j)=1;
i=i+1;
j=j-1;
end
但我想要另一种方法来解决它,而无需使用循环或诊断和眼睛命令。
提前致谢
在没有循环的情况下实现这一点的最简单和最明显的方法是使用
s=fliplr(eye(n))
既然你说你不想使用眼睛(无论出于何种原因),你也可以使用 sub2ind
-command。它看起来像这样:
s=zeros(n);
s(sub2ind(size(s),1:size(s,1),size(s,2):-1:1))=1
我是 MATLAB 的新手,我需要一些帮助来解决这个问题。
问题是编写一个函数,创建一个由零和反向对角线上的 1 组成的 (n-n) 方阵 我试过这段代码:
function s=reverse_diag(n)
s=zeros(n);
i=1;j=n;
while i<=n && j>=1
s(i,j)=1;
i=i+1;
j=j-1;
end
但我想要另一种方法来解决它,而无需使用循环或诊断和眼睛命令。
提前致谢
在没有循环的情况下实现这一点的最简单和最明显的方法是使用
s=fliplr(eye(n))
既然你说你不想使用眼睛(无论出于何种原因),你也可以使用 sub2ind
-command。它看起来像这样:
s=zeros(n);
s(sub2ind(size(s),1:size(s,1),size(s,2):-1:1))=1