标签: matlab diagonal
我知道这个问题的答案如下所示。
function a = reverse_diag(n) b = zeros(n); b(1:n+1:end) = 1; a(1:n, n:-1:1) = b(1:n, 1:n); end
但为什么会这样呢?这是什么意思?
b(1:n+1:end) = 1;
答案 0 :(得分:3)
我似乎记得最近在MATLAB答案中看到了与此相似的内容,因此我将简短。
MATLAB数组可以通过两种相关方式编制索引:
与使用矩阵中实际坐标的A(x,y)类似。
A(x,y)
与A(index)类似,无论矩阵A实际拥有多少维度。这称为线性索引,将逐列遍历矩阵。因此,对于10x10矩阵,A(11)实际上是A(2,1)。
A(index)
A
A(11)
A(2,1)
阅读ind2sub和sub2ind,了解这些是如何运作的。您现在应该能够弄清楚该行的工作原理。
ind2sub
sub2ind