【发布时间】:2016-01-07 06:31:48
【问题描述】:
假设我们有三个向量 a、b 和 c,包括如下递增的实数值:
a=[3 4 19 22];
b=[1 10 15];
c=[3 5 11];
在 MATLAB 中查找此类问题中递增数字序列的最有效方法是什么(不使用循环)?
对于上面的例子,输出应该是这样的:
[3 10 11]
[4 10 11]
它们的第一个元素来自 a,第二个元素来自 b,第三个元素来自 c,因此它们应该有三个递增的元素。 注意:第一个数字必须来自a,第二个来自b,第三个来自c。
对于这个问题,使用循环不是一个好的选择,因为向量可能有更长的长度,一般情况下向量的数量会增加,所以运行时间会很长。
任何帮助将不胜感激...... 提前致谢
【问题讨论】:
-
对不起,我可能太笨了,看不到这里的关系,但也许你可以为像我这样的白痴更仔细地解释一下?特别是要求选择一个数字。比如好像5也能满足要求,为什么不能选择c(2)?)。
-
第一个数字必须来自
a,第二个来自b,第三个来自c? -
如果您不想使用循环,则必须将所有可能的组合存储在某个地方,然后可能会调用
issorted。问题是组合矩阵会和所有输入向量的长度乘积一样大,可能会导致内存问题 -
是的,你是对的,第一个数字必须来自 a,第二个来自 b,第三个来自 c
-
对不起帕特里克,这是我的错。我已经编辑过了。谢谢
标签: matlab search vector sequence vectorization