Matlab 怎样使每个函数的结果都输出呢
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/16 16:53:41
Matlab 怎样使每个函数的结果都输出呢
function [breakpoint] = TopDown( T,left,right,max_error)
small_T=T(left:right);
best_so_far=inf;
n=length(small_T);
for i=2:n-1
error_split=split(small_T,i);
if error_splitmax_error)
breakpoint=TopDown(T,left,breakpoint,max_error);
end
if (errorsplit(T(breakpoint+1:right))>max_error)
breakpoint=TopDown(T,breakpoint,right,max_error);
end
end
我想把所有的 breakpoint 都输出 但是很显然这样的话 就会只输出最后一个 前面的都覆盖了 能不能 输出一个向量呢
function [error,NewT] = split( T,i )
n=length(T);
NewT=zeros(n,1);
NewT(1:i)=linspace(T(1),T(i),i);
NewT(i:n)=linspace(T(i),T(n),n-i+1);
error=norm(T-NewT,2);
end
function [error] = errorsplit(T)
n=length(T);
NewT=linspace(T(1),T(n),n);
error=norm(T-NewT',inf);
end
附上小函数的代码
function [breakpoint] = TopDown( T,left,right,max_error)
small_T=T(left:right);
best_so_far=inf;
n=length(small_T);
for i=2:n-1
error_split=split(small_T,i);
if error_splitmax_error)
breakpoint=TopDown(T,left,breakpoint,max_error);
end
if (errorsplit(T(breakpoint+1:right))>max_error)
breakpoint=TopDown(T,breakpoint,right,max_error);
end
end
我想把所有的 breakpoint 都输出 但是很显然这样的话 就会只输出最后一个 前面的都覆盖了 能不能 输出一个向量呢
function [error,NewT] = split( T,i )
n=length(T);
NewT=zeros(n,1);
NewT(1:i)=linspace(T(1),T(i),i);
NewT(i:n)=linspace(T(i),T(n),n-i+1);
error=norm(T-NewT,2);
end
function [error] = errorsplit(T)
n=length(T);
NewT=linspace(T(1),T(n),n);
error=norm(T-NewT',inf);
end
附上小函数的代码
不知道楼主要所有满足什么条件的breakpoint;但方法是这样的,topdown可以设置两个输出参数,其中一个是allbp存放楼主想要的breakpoint,先赋值为空矩阵,然后找到满足楼主条件的breakpoint就allbp=[allbp breakpoint];就ok了,如下面的程序,注释加好的表示我加的语句
function [allbp breakpoint] = TopDown( T,left,right,max_error)
allbp=[]; %+++++++++++++++
small_T=T(left:right);
best_so_far=inf;
n=length(small_T);
for i=2:n-1
error_split=split(small_T,i);
if error_splitmax_error)
breakpoint=TopDown(T,left,breakpoint,max_error);
allbp=[allbp breakpoint]; %+++++++++++++++++
end
if (errorsplit(T(breakpoint+1:right))>max_error)
breakpoint=TopDown(T,breakpoint,right,max_error);
allbp=[allbp breakpoint]; %++++++++++++++++
end
end
再问: 这个改法的问题在于 每次递归都会 执行 allbp=[]; 这样的话以前的信息都删除了
再答: 你是说要在主程序里存放所有的断点啊。那就把allbp=[]; allbp=[allbp breakpoint]; 放在主程序里,子函数里的不要了
function [allbp breakpoint] = TopDown( T,left,right,max_error)
allbp=[]; %+++++++++++++++
small_T=T(left:right);
best_so_far=inf;
n=length(small_T);
for i=2:n-1
error_split=split(small_T,i);
if error_splitmax_error)
breakpoint=TopDown(T,left,breakpoint,max_error);
allbp=[allbp breakpoint]; %+++++++++++++++++
end
if (errorsplit(T(breakpoint+1:right))>max_error)
breakpoint=TopDown(T,breakpoint,right,max_error);
allbp=[allbp breakpoint]; %++++++++++++++++
end
end
再问: 这个改法的问题在于 每次递归都会 执行 allbp=[]; 这样的话以前的信息都删除了
再答: 你是说要在主程序里存放所有的断点啊。那就把allbp=[]; allbp=[allbp breakpoint]; 放在主程序里,子函数里的不要了
求这段matlab代码的输出结果
matlab怎么输出结果?
matlab 输出结果
matlab怎样将循环输出的数据结果放进一个矩阵中,然后用作他用?
Matlab新手,怎么样可以让matlab 输出的结果不用分数表示,而是用小数表示呢?
matlab中如何计算函数每个自变量对应的函数值,并全部显示其结果?
关于Matlab函数输出的问题
matlab 求导?你可以考虑控制输出结果的精度,matlab的函数是digits(用于规定运算精度),具体可以查mat
matlab中symsum函数的计算结果为什么是表达式,不是数值呢?
写出下列每个程序运行后的输出结果
写出下列每个程序运行后的输出结果,
在matlab中怎样可以使cell中的每个元素分别进行特定的运算?有没有方法把cell中的每个元素都分解出来?