当前位置: 首页 > news >正文

Matlab 命令行窗口默认输出(异常)

目录

  • 前言
  • Matlab 先验知识
  • 1 异常输出的代码
  • 2 正常输出的代码

前言

在单独调试 Matlab 写的函数时出现不想出现的异常打印值,逐个注释排查才找到是 if elseif else 代码块的问题,会默认打印输出 else 部分第一个返回值的值(下方代码中的 P值)。

再调用该函数时不会有上述问题,只有在函数单独运行时才会出现。respect!!!

Matlab 先验知识

MATLAB 命令行会输出数值的原因通常是由于某些操作没有被以分号 ; 结尾,从而导致默认输出。根据你提供的代码片段,可以确认以下几点:

  1. 每个变量的赋值语句都没有分号(;),这会导致 MATLAB 将这些赋值操作的结果打印到命令行。
  2. 其他可能的显式输出操作(例如 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 %只输出位置Xp=P;  
elseif nargout == 2 %输出速度和位置Xp=P;  v=V;      
elseXp=P;  v=V;    ErrorX=ErrorXL;  %输出值误差
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 %只输出位置Xp=P;  
elseif nargout == 2 %输出速度和位置Xp=P;  v=V;      
elseif nargout == 3Xp=P;  v=V;    ErrorX=ErrorXL;  %输出值误差
end

代码正常执行,没有多余值打印

在这里插入图片描述

http://www.lryc.cn/news/406132.html

相关文章:

  • LeetCode/NowCoder-二叉树OJ练习
  • PSINS工具箱函数介绍——insplot
  • Docker简单快速入门
  • 【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 图像物体的边界(200分) - 三语言AC题解(Python/Java/Cpp)
  • 【无人机】低空经济中5G RedCap芯片的技术分析报告
  • MongoDB教程(二十一):MongoDB大文件存储GridFS
  • vue 搜索框
  • 国科大作业考试资料-人工智能原理与算法-2024新编-第五次作业整理
  • C++五子棋(未做完,但能玩,而且还不错)
  • 二分查找代码详解
  • uniapp的h5,读取本地txt带标签的文件
  • 韦东山嵌入式linux系列-具体单板的按键驱动程序(查询方式)
  • 如何使用 API list 极狐GitLab 群组中的镜像仓库?
  • PHP设计模式-简单工厂模式
  • C语言航空售票系统
  • Oracle 19c打Datapatch数据补丁报错处理
  • Linux shell编程学习笔记66:ping命令 超详细的选项说明
  • SSL/TLS和SSL VPN
  • 浅谈WebSerice
  • linux快速入门-学习笔记
  • 科普文:5种Linux下软件部署方式说明
  • Redisson中的RBlockingQueue的使用场景及例子
  • 【办公软件】Office 2019以上版本PPT 做平滑切换
  • connect-multiparty中间件用法以及实例--文件上传中间件(保姆级别教学)
  • 0503触发器的电路结构和工作原理
  • LeetCode:二叉树的中序遍历(C语言)
  • MySQL数据库基本安装与部署
  • paraFoam 运行 报错 usr/lib/x86_64-linux-gnu/libQt5Core.so 已解决
  • 科技前沿:Llama 3.1的突破与革新
  • 每天一个数据分析题(四百四十七)- 业务系统