【发布时间】:2021-05-13 21:54:56
【问题描述】:
假设我有一个人的列表,我想将他们的名字存储在一个结构数组中:
people(1).name = "john"
people(1).lastname = "doe"
people(2).name = "jane"
people(2).lastname = "smith"
这将给出一个带有字段名称和姓氏的“1×2 struct array”。
现在,如果我这样做:
peoplev2(1,1).name = "john"
peoplev2(1,1).lastname = "doe"
peoplev2(2,1).name = "jane"
peoplev2(2,1).lastname = "smith"
它会给我一个带有名称和姓氏的“2×1 struct array”。
现在,尽管尺寸不同(一个是 1x2,另一个是 2x1),但可以以相同的方式访问两个结构数组并获得相同的结果:
people(1)
是一个名为“john”和姓氏“doe”的结构
peoplev2(1)
也是一个名为“john”和姓氏“doe”的结构。
我本来希望一个数组相对于另一个数组进行旋转(1x2 与 2x1),但尽管尺寸不同,它们似乎是相等的。此外,如果您在 MATLAB Workspace 中将它们可视化,它们都会呈现为包含第 1 行和第 2 行以及列“名称”和“姓氏”的表(我想我会得到第 1 列和第 2 列,以及行名称和姓氏)。
为什么 1x2 与 2x1 完全没有区别?在其他语言中,如果您尝试使用典型索引 i 和 j 迭代矩阵,在一种情况下,i 将循环到 2,而在另一种情况下,它将是 j,它们肯定不会平等。
我在这里缺少什么?谢谢!
【问题讨论】:
-
在重复问题中专门查看线性索引。您在这里使用线性索引,这意味着向量的方向无关紧要。