MATLAB 的输入与输出:一篇速查博客

MATLAB 的输入与输出:一篇速查博客

一句话导读

程序=算法+数据,数据离不开"进来"和"出去"。MATLAB 提供 10 余种 IO 方式,涵盖键盘、文件、剪贴板、网络、硬件。记住这篇"地铁图",5 分钟找到你需要的接口。


一、输入(Input)速览

场景 典型命令 / 函数 返回类型 备注
键盘交互 x = input('提示> ') 数值/字符串/矩阵 可选 's' 强制文本
键盘单次按键 key = getkey 字符 不显示在命令行
拖放文件 uigetfile 文件名细胞串 弹出系统对话框
整个工作区 uiopen / 双击文件 变量列表 等价于 load
Excel/CSV readmatrix, readtable 矩阵 / table 自动识别表头
文本行 readlines (R2020b+) string 列向量 一次性读全部行
二进制 fread, memmapfile uint8 或任意 大文件内存映射
图片 imread M×N×3 uint8 支持 JPG/PNG/TIF/RAW
音频 audioread 采样向量 + fs 自动归一化到 [-1,1]
视频 VideoReader 对象(可逐帧) 支持 MP4/AVI/MOV
串口 / TCP serialport, tcpclient 对象 + 读写 硬件/网络流
剪贴板 readclip, clipboard 字符串 / 图像 与 Excel 互粘

二、输出(Output)速览

场景 典型命令 说明
命令窗口 disp, fprintf, sprintf 调试/日志
图窗 plot, imshow, heatmap 可视化
保存变量 save *.mat 二进制,完整恢复
文本/CSV writematrix, writetable 带表头,Excel 直开
任意文本 fprintf + 文件句柄 完全自定义格式
二进制 fwrite, memmapfile 流式或内存映射
图片 exportgraphics, print, imwrite 矢量 PDF/位图 PNG
音频 audiowrite WAV、FLAC、OGG
视频 VideoWriter MP4、AVI、MJPEG
报告 publish 一键 PDF/HTML/Word
剪贴板 writeclip 把表格/图片塞进 Ctrl+V

三、键盘交互 10 秒上手

matlab 复制代码
% 数值
age = input('请输入年龄: ');

% 字符串
name = input('请输入姓名: ', 's');

% 矩阵
A = input('请输入 2×2 矩阵,如 [1 2; 3 4]: ');

输入时可现场写表达式:[1:3; 4:6]pi/2 都合法。


四、文件读写最短路径

1. Excel/CSV 一条命令

matlab 复制代码
T = readtable('data.xlsx','Sheet','Raw');   % 读
writetable(T,'clean.csv');                  % 写

2. 纯文本列自定义

matlab 复制代码
fid = fopen('log.txt','w');
for k = 1:N
    fprintf(fid,'%04d  %10.6f\n',k,result(k));
end
fclose(fid);

3. 图片"高清矢量"

matlab 复制代码
plot(x,y); exportgraphics(gcf,'fig.pdf','Resolution',300);

五、完整模板:读→算→写→图

matlab 复制代码
%% 1. 读 Excel
T = readtable('sales.xlsx');

%% 2. 计算
T.Profit = T.Revenue - T.Cost;

%% 3. 写 CSV
writetable(T,'profit.csv');

%% 4. 画图
bar(T.Date,T.Profit);
xlabel('月份'); ylabel('利润/万元');
title('2025 年月度利润');

%% 5. 保存高清图
exportgraphics(gcf,'profit.pdf');

六、常见坑提示

  • input 不加 's' 会把 3/2 当成表达式 算,返回 1.5;要原样文本务必加 's'
  • load *.mat 会把变量直接塞进工作区 ,同名会覆盖;可用 S = load('file.mat') 结构体封装。
  • csvwrite 已废弃,优先 writematrix / writetable
  • 视频/音频写完后必须 close(writer),否则文件损坏。
  • 串口/网口流读取注意 Terminator 设置,否则永远堵在 readline

七、一张"地铁图"保存即用

复制代码
输入
├─ 键盘 input / getkey
├─ 文件 readmatrix/readtable/imread/audioread/VideoReader
├─ 网络/硬件 tcpclient/serialport
└─ 剪贴板 readclip

输出
├─ 屏幕 disp/fprintf
├─ 图窗 plot→exportgraphics
├─ 文件 writematrix/writetable/fprintf/save/VideoWriter
└─ 剪贴板 writeclip

八、结语

记住"两条命令走天下 ":
readmatrix / readtable
writematrix / writetable

其余场景按地铁图对号入座,10 秒钟就能写出稳健 IO。

把这篇贴在桌面,再也不用翻 Help 啦!

相关推荐
JSON_L11 小时前
Fastadmin中使用百度翻译API
php·fastadmin·百度翻译api
毕设源码-赖学姐11 小时前
【开题答辩全过程】以 基于python的电影推荐系统为例,包含答辩的问题和答案
开发语言·python
星辰_mya11 小时前
Elasticsearch线上问题之慢查询
java·开发语言·jvm
前端小菜袅11 小时前
PC端原样显示移动端页面方案
开发语言·前端·javascript·postcss·px-to-viewport·移动端适配pc端
Highcharts.js11 小时前
如何使用Highcharts SVG渲染器?
开发语言·javascript·python·svg·highcharts·渲染器
郝学胜-神的一滴11 小时前
超越Spring的Summer(一): PackageScanner 类实现原理详解
java·服务器·开发语言·后端·spring·软件构建
摇滚侠11 小时前
Java,举例说明,函数式接口,函数式接口实现类,通过匿名内部类实现函数式接口,通过 Lambda 表达式实现函数式接口,演变的过程
java·开发语言·python
阿里嘎多学长11 小时前
2026-02-03 GitHub 热点项目精选
开发语言·程序员·github·代码托管
Tony Bai11 小时前
“Go 2,请不要发生!”:如果 Go 变成了“缝合怪”,你还会爱它吗?
开发语言·后端·golang
打工的小王11 小时前
java并发编程(七)ReentrantReadWriteLock
java·开发语言