直接在矩阵的末尾添加函数输出

时间:2014-12-24 16:05:46

标签: matlab

我有一个包含几个n乘3矩阵的单元格。现在我想要一个函数的输出,它是1乘3矩阵的两倍,成为来自单元格的两个矩阵的最后一个条目。 我现在就这样做,这有效。但我想知道是否也可以在一条线上做到这一点?

 [a] = functionfile(function_input)
 b{x1}(n,:) = a{1};
 b{x2}(n,:) = a{2};

因此,在这种情况下,{1}和{2}都是带有标量的1乘3矩阵。并且b是具有许多n乘3矩阵的单元,但是仅在这些矩阵中的两个矩阵中必须替换第n行。即从x1和x2。 所以上面的代码首先将它存储在一个新变量a中,然后覆盖b中的最后一行。但如果我直接使用它,比如:

  [b{x1}(n,:)  b{x2}(n,:)] = functionfile(function_input)

我收到错误:

  

使用functionfile时出错   输出参数太多。

这是因为在函数文件本身中,输出被写为

  [a] = functionfile(function_input)

但如果我用

替换它
  [a{1} a{2}] = functionfile(function_input)

它会给我

  

错误:文件:functionfile.m行:1列:13不平衡或   意外的括号或括号。

当{1}和{2}是a中唯一存在的部分时,{3},a {4}等都不存在。 我能想到的唯一解决方案是在函数文件中写一个{1}和一个{2}作为两个不同的变量。然而,我再也不能使用for循环了,它会把它搞乱。

0 个答案:

没有答案