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

相关推荐
m0_733612218 小时前
C++20概念(Concepts)入门指南
开发语言·c++·算法
luffy54598 小时前
Rust语言入门-变量篇
开发语言·后端·rust
2301_807367199 小时前
C++中的模板方法模式
开发语言·c++·算法
weixin_537590459 小时前
《C程序语言设计》练习答案(练习1-3)
c语言·开发语言
m0_459252469 小时前
fastadmin动态渲染统计信息
开发语言·前端·javascript·php
AI成长日志9 小时前
【实用工具教程】Linux常用命令速查与实战场景:文件操作、进程管理与网络调试高频命令解析
linux·php
傻啦嘿哟9 小时前
Python 操作 Excel 条件格式指南
开发语言·python·excel
逆境不可逃9 小时前
LeetCode 热题 100 之 33. 搜索旋转排序数组 153. 寻找旋转排序数组中的最小值 4. 寻找两个正序数组的中位数
java·开发语言·数据结构·算法·leetcode·职场和发展
星空下的月光影子9 小时前
易语言开发从入门到精通:进阶篇·数据处理与分析自动化·高频刚需手工转自动场景全覆盖
开发语言
林夕sama9 小时前
多线程基础(四)
java·开发语言