求解多项式方程的结果是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是系数矩阵
答案 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