使用 for 循环迭代空矩阵
Posted
技术标签:
【中文标题】使用 for 循环迭代空矩阵【英文标题】:Iterating an empty matrix using a for loop 【发布时间】:2013-07-30 19:56:42 【问题描述】:我一直认为使用for
循环迭代一个空向量与完全没有循环是一样的。但是,我偶然发现了这种奇怪的行为:
for t = [] %// Iterate an empty 0x0 matrix
1
end
for t = ones(1, 0) %// Iterate an empty 1x0 matrix
2
end
for t = ones(0, 1) %// Iterate an empty 0x1 matrix
3
end
结果是:
ans =
3
这有意义吗,还是这是一个错误?
【问题讨论】:
【参考方案1】:for
loop 遍历其输入的所有列。由于 0x1 矩阵有一个(空)列,循环将简单地遍历它。空矩阵也不例外,所以这里t
将只是空矩阵,如下所示:
for t = ones(0, 1) %// Iterate over an empty 0x1 matrix
size(t) % t is a 0x1 matrix
end
这是一个错误吗?可能不会。 是否有意义?好吧,我想如果输入为空,我希望不执行循环,但这样做可能也有好处。
至少这绝对是值得警惕的事情!
【讨论】:
你的意思是for t = t'
吗?
@TryHard 我的问题已被编辑,有人删除了v
。我已经更新了匹配的答案。
@DennisJaheruddin - 这是我不知道的事情,这完全有道理。感谢您提供这些信息!
嗨@DennisJaheruddin,您能接受将问题标记为已解决的答案吗? (当然,除非你期待其他答案......)以上是关于使用 for 循环迭代空矩阵的主要内容,如果未能解决你的问题,请参考以下文章