具有一维向量的矩阵

Posted

技术标签:

【中文标题】具有一维向量的矩阵【英文标题】:Matrix with 1d vector 【发布时间】:2021-03-16 11:18:52 【问题描述】:

我表示一个像棋盘一样的 n*m 矩阵。

1 0 2 0

0 3 0 4

5 0 6 0

0 7 0 8

我不需要将零存储在我的一维向量中。

向量 v = 1, 2, 3, 4.. 等

我向用户询问行号和列号。 我怎么能和我一起回来。第 j 行。列元素?

如果 (i+j) % 2 != 0

我返回 0,但我不知道何时需要做什么

(i+j) % 2 == 0

你能帮帮我吗? (对不起我的英语不好)

【问题讨论】:

为什么棋盘在国际象棋中,我们使用所有情况,棋盘游戏只使用一种特定颜色的情况。 【参考方案1】:

使用存储为一维向量的常规矩阵,索引坐标为:

(i + j * width)(或i * height + j,取决于约定)。

一半大小写为 0,你只需要除以 2:

if ((i + j) % 2 != 0) return 0;
else return data[(i + j * width) / 2];

【讨论】:

@Caleth:不。它应该适用于偶数或奇数宽度。 你能帮我怎样才能像这样乘以 2 矩阵吗?我在纸上推断出来,但我没有弄清楚逻辑:( @PuN1Sh3r:你应该问另一个问题。

以上是关于具有一维向量的矩阵的主要内容,如果未能解决你的问题,请参考以下文章

向量、矩阵和数组数据类型有啥区别?

c_cpp 计算存储在一维点阵列中的矩阵的特征值和特征向量

R语言里面的向量指的是啥,和数组有啥分别?应用于啥上面?

PCA whitening

使用嵌套的 for 循环实现矩阵向量乘法的标量、行变体

MATLAB 稀疏矩阵