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 啦!

相关推荐
南极星100511 分钟前
蓝桥杯JAVA--启蒙之路(十)class版本 模块
java·开发语言
baidu_2474386115 分钟前
Android ViewModel定时任务
android·开发语言·javascript
Dev7z28 分钟前
基于 MATLAB 的铣削切削力建模与仿真
开发语言·matlab
不能隔夜的咖喱33 分钟前
牛客网刷题(2)
java·开发语言·算法
小天源41 分钟前
Error 1053 Error 1067 服务“启动后立即停止” Java / Python 程序无法后台运行 windows nssm注册器下载与报错处理
开发语言·windows·python·nssm·error 1053·error 1067
肉包_5111 小时前
两个数据库互锁,用全局变量互锁会偶发软件卡死
开发语言·数据库·c++
大空大地20261 小时前
流程控制语句--if语句
开发语言
毕设源码-邱学长2 小时前
【开题答辩全过程】以 基于PHP的发热病人管理平台的设计与实现为例,包含答辩的问题和答案
开发语言·php
HellowAmy2 小时前
我的C++规范 - 线程池
开发语言·c++·代码规范
独自破碎E2 小时前
【BISHI9】田忌赛马
android·java·开发语言