【发布时间】:2012-06-14 06:35:43
【问题描述】:
我有两个不同大小的矩阵。让我们将矩阵 {a} 定义为 a(1:10) 并将矩阵 {b} 定义为 b(6:10) 。我需要一个 for 循环或等效的 (bsxfun) 来获取矩阵 {a} 和 {b} 之间的差异,代码将根据矩阵 {b} 的大小进行迭代。例如,矩阵 {a} 的第一个值为 1,代码将获取所有矩阵 {b} 值的差。因此,它将总共运行 5 次。矩阵 {a} 的下一个值为 2,代码将迭代 5 次。代码将迭代直到矩阵 {a} 结束,即值为 10。
如果可以的话,你能不能写一个不带 bsxfun 的 for 循环和一个带 bsxfun 的循环,并解释你是如何索引这些值的。另外,只是为了我的启发,如果有N个矩阵(N>2),而不是两个矩阵,代码将如何变化?
谢谢。
【问题讨论】:
-
您希望
a和b成为行向量,例如a = 1:10和b = 6:10,还是列向量,例如a = [ 1:10 ]'和b = [ 1:10 ]'?其他问题是length(5:10)是6,而不是您的问题中的5。
标签: matlab loops matrix bsxfun