matlab - 如何在 MATLAB 中生成矩阵,其中值随着坐标的增加而减小

标签 matlab matrix

我正在尝试生成一个 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/

相关文章:

matlab - 使用 matlab 将 RGB 图像转换为灰度图像并重命名

c - 从数组读取性能

c# - 模式识别霍普菲尔德

python - Numpy 追加到矩阵

c++ - 模板参数推导出错

matlab - 根据给定矩阵的对角线和反对角线创建新矩阵

r - 将字符元素添加到数值矩阵

matlab - 衡量两个不同(矢量)信号的相似度

r - 将集合的分区枚举为大小相等的子集

arrays - 在 Matlab 问题中使用 FFT 进行二维反卷积