matlab文件读写监听,MATLAB 文件读写

MATLAB 文件读写

数据读取

文件路径

% 打开文件夹

>> files = dir('Videos');

% 获取文件名

>> files(1).name

文本数据读取

这一步的前提是上一步进入到当前文件路径里

读取数值文本

⚠️在txt文本中%后的文字会被自动识别为注释。

下面有这样一个txt文件:

a688361a26bba541f5331d66d6e4eb14.png

% 读取文本数据

>> data = load('score.txt');

% 得到第1列的数据

>> w = data(:,1);

% 得到第2列和第3列的数据

>> s = data(:,2:3);

% 计算各自的得分

>> r = w'*s %注意转置后相乘,矩阵相乘的条件

r =

88.29 87.19

读取字符串文本

下面有这样一个txt文件:

10f2bc2950d0c43018b76b79bee3684f.png

% r表示只读的意思

>> fid = fopen('swords.txt','r');

% 这里的l表示行的意思

>> t1 = fgetl(fid)

t1 =

刘正风

>> t2 = fgetl(fid)

t2 =

包惜弱

% 读全部用while循环即可

% 将字符组合起来

>> t = [t1(1) t2(3)]

t =

刘弱

% 注意读完要close

>> fclose(fid);

举个例子

下面有这样一个文本:

8aefe550a607a9d70aee154a1c36461f.png

filename = 'beltway.dat';

fid = fopen(filename,'r'); % 读取文件

tline = fgetl(fid); tline = fgetl(fid); % 读取第一行 第二行

% 一直无限按行读取下去

while ischar(tline)

data = regexp(tline,',','split'); % 按','分割开字符串

[date,lat,long] = data{:}; % 分别赋值给数组date,lat,long

time = datenum(date,'dd/mm/yyyy'); % 计算时间day,内置函数

lat = str2num(lat); long = str2num(long); % str2num:字符串转换成数字;同理num2str:数字转字符串

tline = fgetl(fid); % 读取下一行

end

fclose(fid); % 关闭文件

写文本数据

新建一个文本在当前目录下bill.txt

% 打开文本,若没有会新建

>> fid = fopen('bill.txt','w');

% 参数1 文件名,参数2写入的数据

>> fprintf(fid,'我的账单\n\n');

% 参数1 文件名,参数2 数据,参数3 像c语言填写%d

>> fprintf(fid,'手机 %d \n',-1200);

>> fprintf(fid,'账目细节\n');

>> detail = -[845 834.2 345 390 893.22];

% %-5d表示往右空5个空格,没有-号表示左边5个空格。.1f表示精度为小数点后1位

>> fprintf(fid,'%-5d %5.1f\n',[1:5;detail]);

输出结果如下:

41733701e22755f14907c2b801298b53.png

Excel文本数据读取

有如下这样一个Excel文件

da82ebac5f9c65ae3ce3b9a616d770ca.png

% 注意参数2为表单

>> data = xlsread('data.xls','Sheet1','A4:C6')

data =

95 12 33

45 667 775

123 43577 2343

% isnan() 即是判断是否为NaN。

% data('逻辑运算')得到的结果就是如果是就赋值为0,不是就取出来

>> data(isnan(data)) = 0

data =

0 88 33

0 11 33

0 22 33

95 12 33

45 667 775

123 43577 2343

Excel文件的写

>> xlswrite('RS.xls',{'T','W'},'Sheet1','B1:C1');

% 写入一个元胞数组

>> XYZ = {'X','Y','Z';6 6 8; 9 7 5};

>> xlswrite('RS.csv',XYZ','A2:G4');

图片数据读入

% 读图片

Yui = imread('Yui.jpg');

% 显示尺寸,得到的是像素点数,最后一个为层数,3层即RGB

size(Yui)

ans =

374 374 3

% 显示图片

image(Yui)

% 取出一部分,参数为像素范围

lip = Yui(242:266,255:279,:);

image(lip);

视频数据读入

obj = VideoReader('Videos/AoiSora.avi');

% 获取第几帧

frame = read(obj,25);

% 显示出来

imshow(frame);

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值