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

相关推荐
两个人的幸福3 天前
Windows 桌面应用自研 PHP 队列(下):完整代码与六大工程化优化
php
BingoGo5 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
JaguarJack5 天前
PHP 泛型之殇 泛型 RFC 提案被拒绝
后端·php
用户3074596982076 天前
PHP 扩展——从入门到理解
php
鹏仔先生7 天前
拷贝漫画APP下载页PHP程序,后台带免费AI写作
php
LDR0067 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术7 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园7 天前
C++20 Modules 模块详解
java·开发语言·spring
xiao5kou4chang6kai47 天前
MATLAB机器学习、深度学习--从数据预处理到模型训练
深度学习·机器学习·matlab·数据预处理
swordbob7 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio