我有一个包含几个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循环了,它会把它搞乱。