做网站要多少钱呀,建设科技网络网站的意义和目的,企业品牌网站建设多少钱,wordpress增加分享目录 前言Matlab 先验知识1 异常输出的代码2 正常输出的代码 前言
在单独调试 Matlab 写的函数时出现不想出现的异常打印值#xff0c;逐个注释排查才找到是 if elseif else 代码块的问题#xff0c;会默认打印输出 else 部分第一个返回值的值#xff08;下方代码中的 P值逐个注释排查才找到是 if elseif else 代码块的问题会默认打印输出 else 部分第一个返回值的值下方代码中的 P值。
再调用该函数时不会有上述问题只有在函数单独运行时才会出现。respect
Matlab 先验知识
MATLAB 命令行会输出数值的原因通常是由于某些操作没有被以分号 ; 结尾从而导致默认输出。根据你提供的代码片段可以确认以下几点
每个变量的赋值语句都没有分号;这会导致 MATLAB 将这些赋值操作的结果打印到命令行。其他可能的显式输出操作例如 disp 或 fprintf不在提供的代码片段中但可能在你运行的完整脚本中。
1 异常输出的代码
function [Xp,v,ErrorX,pdop] PVE(BSN)
P [1,2,3,4];
V 0;
ErrorXL [0,1,2,3];
if nargout 1 %只输出位置XpP;
elseif nargout 2 %输出速度和位置XpP; vV;
elseXpP; vV; ErrorXErrorXL; %输出值误差
end该代码单独运行时命令行总是会打印 P 的值当 P 是长串数组时会有一长串的打印影响结果显示 2 正常输出的代码
把最后的 else 改成 else if 条件
function [Xp,v,ErrorX,pdop] PVE(BSN)
P [1,2,3,4];
V 0;
ErrorXL [0,1,2,3];
if nargout 1 %只输出位置XpP;
elseif nargout 2 %输出速度和位置XpP; vV;
elseif nargout 3XpP; vV; ErrorXErrorXL; %输出值误差
end代码正常执行没有多余值打印