matlab:在矩阵/单元格中存储矢量输出

时间:2015-05-05 17:33:33

标签: matlab matrix

求解多项式方程的结果是1x2向量或在某些情况下为1x1。我试图存储具有不同系数的方程的所有解。所以一些解决方案只是1x1向量。我怎样才能有效地存储这些?

n = 1;
%sol = zeros(size(coef));  %create solution matrix in memory
sol = {};

while n < size(coef,2)
        sol(n) = roots(coef(:,n));

end

&#34;无法从double转换为单元格。&#34; 错误。

coef是系数矩阵

1 个答案:

答案 0 :(得分:1)

你快到了!

为了将矢量存储为单元格数组中的单元格,请在赋值期间使用花括号{}

sol(n) = {roots(coef(:,n))};

或者:

sol{n} = roots(coef(:,n));

这样,矢量/数组可以是任何大小。有关访问单元阵列中数据的详细信息,请查看this链接。

另外,不要忘记增加n,否则你将获得无限循环。

整个代码:

n = 1;
%sol = zeros(size(coef));  %create solution matrix in memory
sol = {};

while n <= size(coef,2)
        sol(n) = {roots(coef(:,n))};
n = n+1
end