【发布时间】:2014-08-24 19:35:04
【问题描述】:
我想用这些条件在 matlab 中创建一个 40x40 的矩阵。
[\A_{i,j}]
=
1
如果 $i+2 \le j \le i+12$ 或 $j+12-39 > i > j+2-39$
否则为0
PS 我让左上角的元素有索引_{0,0}和右下角的索引_{39,39}
(实际上,我想在 Octave 中进行,但我认为这些几乎总是相同的)
【问题讨论】:
我想用这些条件在 matlab 中创建一个 40x40 的矩阵。
[\A_{i,j}]
=
1
如果 $i+2 \le j \le i+12$ 或 $j+12-39 > i > j+2-39$
否则为0
PS 我让左上角的元素有索引_{0,0}和右下角的索引_{39,39}
(实际上,我想在 Octave 中进行,但我认为这些几乎总是相同的)
【问题讨论】:
这是一种矢量化方法。它使用ndgrid 生成您的 i 和 j 索引的所有组合,然后应用您的条件:
[ii, jj] = ndgrid(0:39);
A = ((ii+2 <= jj) & (jj <= ii+12)) | ((jj+12-39>ii) & (ii>jj+2-39));
【讨论】: