首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MATLAB中递归追加向量

在MATLAB中递归追加向量
EN

Stack Overflow用户
提问于 2013-04-18 22:00:55
回答 1查看 774关注 0票数 0

我正在做一个任务,其中必须找到位于区间[a,b)中的三对角对称矩阵的特征值的数量。我需要使用二分法来找到这些特征值,它们必须以向量E的形式输出。函数是函数E=二分法( a,a,b,tol),tol是可接受的误差范围。

代码语言:javascript
复制
% If tolerance is met, add (a + b)/2 to E as many times as there are
% eigenvalues left in [a,b). This is the recursive stopping criterium.
if(b - a < tol)
    for i = 1:n
        E = [E; (a + b)/2];
    end
end

% If there are eigenvalues left in [a,b), add new eigenvalues to E through
% recursion.
if(n > 0)
    E = [E; bisection(A, a, (a+b)/2, tol); bisection(A, (a+b)/2, b, tol)];
end

E = [];

我想做的是用另一个二等分函数来扩展向量E。只有我得到这个错误:

代码语言:javascript
复制
??? Undefined function or variable "E".

Error in ==> bisection at 56
    E = [E; bisection(A, a, (a+b)/2, tol); bisection(A, (a+b)/2, b, tol)];

我已经创建了一个空向量E,显然不能放在函数中。那么有没有什么方法可以递归地展开一个向量呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-18 22:04:19

如果您不能将空的起始向量放入函数中,则应将其作为输入参数传递。

这是顶层代码可能的样子,例如:

代码语言:javascript
复制
E = [];
E = myRecursiveFunction(E,inputs,stoppingCriteria)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16085090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档