matlab数据的导入和导出

您所在的位置:网站首页 matlab里导入数据 matlab数据的导入和导出

matlab数据的导入和导出

#matlab数据的导入和导出| 来源: 网络整理| 查看: 265

数据的导入和导出 从文本文件中导入数据part1, 使用importdata函数读取格式较为简单的文本文件part2, 使用fopen 函数读取格式较为复杂的文本文件part3, 使用fopen 函数+ 正则表达式 regexp 读取格式非常复杂的文本文件 从EXCEL中导入数据导入图片数据

从文本文件中导入数据 part1, 使用importdata函数读取格式较为简单的文本文件 %生成测试数据 test1, 该文件仅包含数字,列之间以tab分隔。 xval=0:0.1:10; %数据是一条正弦曲线 yval=sin(xval); f=fopen('test1.txt','wt'); for i=1:length(xval) fprintf(f,'%f\t%f\n',xval(i),yval(i)); end fclose(f); % 使用importdata读取test1.txt data1=importdata('test1.txt'); whos data1 %此时data1是一个double矩阵 testdata=data1; figure plot(testdata(:,1),testdata(:,2),'LineWidth',3) xlabel('x') ylabel('Sin(x)') set(gca,'FontSize',16) saveas(gcf,'test1','fig') saveas(gcf,'test1','emf') close(gcf)

在这里插入图片描述

%生成测试数据 test2, 该文件在test1的基础上加入表头 xval=0:0.1:10; yval=sin(xval); f=fopen('test2.txt','wt'); fprintf(f,'#x\tsin(x)\n'); % 加入表头 for i=1:length(xval) fprintf(f,'%f\t%f\n',xval(i),yval(i)); end fclose(f); % 使用importdata读取test2.txt data2=importdata('test2.txt'); whos data2 %注意!此时data2是一个结构体 testdata=data2.data; figure plot(testdata(:,1),testdata(:,2),'LineWidth',3) xlabel('x') ylabel('Sin(x)') set(gca,'FontSize',16) saveas(gcf,'test2','fig') saveas(gcf,'test2','emf') close(gcf)

在这里插入图片描述

part2, 使用fopen 函数读取格式较为复杂的文本文件 %生成测试数据 test3 xval=0:0.1:10; yval=0:0.1:10; zval=sin(xval+yval); f=fopen('test3.txt','wt'); for i=1:length(xval) fprintf(f,'%s\t%f\t%s\t%f\t%s\t%f\n','xval:',xval(i),'yval:',yval(i),'zval:',zval(i)); end fclose(f); % 使用fopen+regexp读取test3.txt f=fopen('test3.txt'); data3=zeros(10000,3); %提前分配内存,当数据比较大时非常重要。 p=1; while ~feof(f) %判断是否到文件结尾 temp=fgetl(f); %读取一行数据 S=regexp(temp,'\s+','split'); % 这里使用的时regexp分割字符串的功能 data3(p,1)=str2double(S{2}); % 将字符串格式改为double格式 data3(p,2)=str2double(S{4}); data3(p,3)=str2double(S{6}); p=p+1; end data3=data3(1:p-1,:); testdata=data3; figure plot3(testdata(:,1),testdata(:,2),testdata(:,3),'LineWidth',3) xlabel('x') ylabel('y') zlabel('sin(x+y)') set(gca,'FontSize',16) saveas(gcf,'test3','fig') saveas(gcf,'test3','emf') close(gcf)

在这里插入图片描述

part3, 使用fopen 函数+ 正则表达式 regexp 读取格式非常复杂的文本文件 %生成测试数据 test4, 这次加入一些随机的无用信息,但是有用的信息总共包含xval, yval, zval 等关键词 xval=0:0.1:10; yval=0:0.1:10; zval=sin(xval+yval); alphabet={'aaffd,','adfb,','gsadc,','a1344,','2b2,','4343,','44c343,','23d5,','++a++,','--e--,'}; % 用于生成随机的无用信息 f=fopen('test4.txt','wt'); for i=1:length(xval) numRandominform=randi(4)+4; seq=randperm(numRandominform); seq=seq(1:3); for j=1:numRandominform ind=randi(length(alphabet)); fprintf(f,'%s\t',alphabet{ind}); if j==seq(1) fprintf(f,'%s\t',['xval=',num2str(xval(i)),',']); end if j==seq(2) fprintf(f,'%s\t',['yval=',num2str(yval(i)),',']); end if j==seq(3) fprintf(f,'%s\t',['zval=',num2str(zval(i)),',']); end end fprintf(f,'\n'); end fclose(f); % 使用fopen+regexp读取test4.txt f=fopen('test4.txt'); data4=zeros(10000,3); %提前分配内存,当数据比较大时非常重要。 p=1; while ~feof(f) %判断是否到文件结尾 temp=fgetl(f); %读取一行数据 S=regexp(temp,'xval.*?,','match'); %regexp匹配字符串功能 data4(p,1)=str2double(S{1}(6:end-1)); % 将字符串格式改为double格式 S=regexp(temp,'yval.*?,','match'); data4(p,2)=str2double(S{1}(6:end-1)); % 将字符串格式改为double格式 S=regexp(temp,'zval.*?,','match'); data4(p,3)=str2double(S{1}(6:end-1)); % 将字符串格式改为double格式 p=p+1; end data4=data4(1:p-1,:); testdata=data4; figure plot3(testdata(:,1),testdata(:,2),testdata(:,3),'LineWidth',3) xlabel('x') ylabel('y') zlabel('sin(x+y)') set(gca,'FontSize',16) saveas(gcf,'test4','fig') saveas(gcf,'test4','emf') close(gcf)

在这里插入图片描述

从EXCEL中导入数据

% 方法一:直接在matlab当前文件夹中双击要打开的excel文件,然后框定excel页面和导入数据范围, % 最后选择导入数据的格式和变量名称即可。

% 方法二:使用xlsread函数 data5=xlsread('test5.xlsx',1); whos data5 % 注意观察此时data5的格式

在这里插入图片描述

data5_2=xlsread('test5.xlsx',2); whos data5_2 % 注意观察此时data5的格式

在这里插入图片描述

导入图片数据 data6=imread('数学建模公会.png'); whos data6 % 这是一个rgb图片 imshow(data6) % 可以操作rgb对应的数据修改图片,例如: data6(:,:,1)=data6(:,:,1)/2; imshow(data6)

在这里插入图片描述

获取代码文件或想了解更多内容,请关注公众号:数学建模公会 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3