matlab数据读入与写出

本文介绍了如何使用Matlab进行文本文件(.txt)和图像文件的读取与写入操作,详细展示了load函数用于读取.txt文件及图像读写函数imread与imwrite的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.文本文件
1)读入
buff = load('filename');
此命令读入的.txt文件按数据在.txt文件内的存储方式被写入到buff变量中。
以空格来分割行元素,回车来分割列元素。
要求.txt文件中必须要是十进制数据,并且行列要对其,不可以有缺省.
  1. txtname = 'D:\exam.txt';  %文件路径  
  2. txtdata = load(txtname);  
如上图所示的代码,则exam.txt文件内的数据按照原格式被读入到名为txtdata的变量当中。
matlab完全继承了C的文件读写方式,因此除了上述load函数之外,也可以直接采用fopen和fscanf相配合的方式来读取.txt文件。但是相比之下load函数则方便很多。
此外.mat文件的读入也可用load函数来实现。
2)写出
在文件保存为.txt的时候,就比较倾向于使用C风格的fopen和fprintf函数了,因为可以灵活地控制输出格式。
  1. txtname = 'D:\out.txt';  
  2. pfile = fopen(txtname,'w');  
  3. for i = 1:row  
  4.     for j = 1:col  
  5.         data = txt2(i,j);  
  6.         fprintf(pfile,'%d ',data);  
  7.     end  
  8.    fprintf(pfile, '\r\n');  
  9. end  
  10. fclose(pfile);  
这就可以按照要求的行列格式输出到.txt文件中,其中行以空格分割,列以回车分割。

2.图像文件
图像文件的读写就比较简单了,利用imread和imwrite函数就可以
img = imread(filename, format);
filename是文件名(含路径和图像格式后缀),format是打开方式,默认缺省时表示按原图像打开。上述指令表示吧图像数据读入到img中。
imwrite(img, filename);
img是存放图像数据的变量名,filename是要保存文件的名称(含路径和图像格式后缀)。
  1. imgname = 'D:\img1.png';       %图像路径  
  2. image = imread(imgname);  
  3. figure, imshow(image);  
  4. imwrite(image, 'D:\out.png');  
### 如何在 MATLAB 中创建和显示表格数据 #### 使用 `readtable` 函数加载外部数据并创建表格 如果需要从外部文件(如 Excel 文件)中读取数据MATLAB 表格,可以使用 `readtable` 函数。该函数能够自动识别常见的分隔符并将数据转换为表格对象。 以下是具体代码示例: ```matlab % 将患者数据从 Excel 文件读入工作区 tdata = readtable('patients.xls'); % 仅保留部分变量以便简化显示 vars = {'Age', 'Systolic', 'Diastolic', 'Smoker'}; tdata = tdata(:, vars); % 显示前几行数据以验证结果 disp(tdata(1:5, :)); ``` 通过这种方式可以从外部源获取数据,并将其存储在一个易于操作的表格对象中[^4]。 --- #### 手动定义表格数据 当不需要从文件中读取数据时,可以直接在 MATLAB 中手动创建表格。例如: ```matlab % 定义一些简单的数值数据 name = {'Alice'; 'Bob'; 'Charlie'}; age = [28; 35; 40]; height = [170; 180; 190]; % 创建表格 patientTable = table(name, age, height, ... 'VariableNames', {'Name', 'Age', 'Height'}); % 显示整个表格 disp(patientTable); ``` 这段代码展示了如何利用基础数组组合成更复杂的表格结构[^2]。 --- #### 在 GUI 应用程序中嵌入表格组件 为了使用户能直观查看这些数据,还可以借助 MATLAB 的 App Designer 或者低级 UI 工具箱功能开发图形化界面应用。下面是一个简单例子演示怎样把之前生成的数据放入一个独立窗口里呈现给最终使用者看。 ```matlab fig = uifigure; uit = uitable(fig, 'Data', patientTable{:,:}); uit.RowName = ''; % 不启用行名编号模式 uit.ColumnName = patientTable.Properties.VariableNames; % 设置列标题 ``` 这里我们先建立了新的 figure 对象作为承载容器接着调用了uitable方法传入原始表格的内容以及指定好每列表头文字[^4]。 --- #### 数据可视化的扩展——热图绘制 除了单纯罗列数字之外,有时可能希望通过色彩渐变等形式突出某些特征趋势,则可考虑采用heatmapchart类库完成这项任务。比如基于先前提到过的病人资料集制作血压分布状况概览图表如下所示: ```matlab h = heatmap(tdata{'Age'}, tdata{'Systolic'}, [],... 'Colormap', parula,... 'ColorbarVisible','on',... 'Title','Patient Age vs Systolic Pressure Heatmap'); xlabel(h,'Age (Years)'); ylabel(h,'Systolic Blood Pressure (mmHg)'); ``` 这样不仅能让读者快速抓住重点信息而且还能增加报告的专业度吸引力程度[^3]. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值