我正在尝试生成一个 n x n 矩阵,例如
5 4 3 2 1
4 4 3 2 1
3 3 3 2 1
2 2 2 2 1
1 1 1 1 1
其中 n = 5 或 n 50。我陷入了僵局,只能生成矩阵的一部分。这是 Penny 和 Lindfield 的《使用 MATLAB 数值方法第三版》中的问题 2.14。这是我迄今为止最好的:
n = 5;
m = n;
A = zeros(m,n);
for i = 1:m
for j = 1:n
A(i,j) = m;
end
m = m - 1;
end
欢迎任何反馈。
最佳答案
这是一个很好的脑筋急转弯,这是我的解决方案:
[x,y] = meshgrid(5:-1:1);
out = min(x,y)
输出:
ans =
5 4 3 2 1
4 4 3 2 1
3 3 3 2 1
2 2 2 2 1
1 1 1 1 1
关于matlab - 如何在 MATLAB 中生成矩阵,其中值随着坐标的增加而减小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47780218/