数据获取-matlab读取excel、txt、图片,视频
excel数据读取:
excel数据读取除了可以采用matlab自带的数据代入之外,可以使用xlsread和xlswrite,其具体用法如下:
a=xlsread('D:\XX.xlsx',3,'A2:B9')
这表示读取D盘中xx.xlsx中sheet3的A2到B9单元格,输出是一个矩阵。
excel简单的写入操作可使用xlswrite函数
xlswrite('D:\XX.xlsx',a,'C2:D9')
txt数据读取:
b=load('XXX.txt');%将XXX.txt的数据存储到b中
一次完整的存储过程如下:
a=linspace(1,30,8);
save d:\expert.txt a -ascii;
b=load('d:\exper.txt');
上文实现了创建了1:30等间距的8个数字,并使用ascii码将a存储到d:\expert.txt中
最后使用load加载txt文件。在matlab的command window中输入b然后回车可得b的结果如下:
b =
1.0000 5.1429 9.2857 13.4286 17.5714 21.7143 25.8571 30.0000
若txt中存储了不同类别的数据和字符,读取txt数据需要使用textread()函数,该函数定义如下:
[A,B,C, ...] = textread('FILENAME','FORMAT')
[A,B,C, ...] = textread('FILENAME','FORMAT',N)
[A,B,C, ...] = textread('FILENAME','FORMAT',param,value, ...)
[A,B,C, ...] = textread('FILENAME','FORMAT',N,param,value, ...)
例如:
[name,type,x,y,answer]=textread('D:\t.txt','%s %d %f %n %s',2,'headerlines',1)
其中Format代表数据格式,N表示读取行数,M表示从哪一行开始读,如果有headerlines就表示,第一行是标题,需要从M+1行开始读取
对于这个表格,上述代码的输出如下:
figure数据读取:
可使用imread函数
clc, clear, close all
a1=imread('000.bmp');
[m,n]=size(a1);
%% 批量读取图片
dirname = 'ImageChips';
files = dir(fullfile(dirname, '*.bmp'));
a=zeros(m,n,19);
pic=[];
for ii = 1:length(files)
filename = fullfile(dirname, files(ii).name);
a(:,:,ii)=imread(filename);
pic=[pic,a(:,:,ii)];
end
double(pic);
figure
imshow(pic,[])
video数据读取:
可使用vision.VideoFileReader(‘XX.mp4’)进行读取
videoFReader = vision.VideoFileReader('vippedtracking.mp4');
% 播放视频文件
videoPlayer = vision.VideoPlayer;
while ~isDone(videoFReader)
videoFrame = step(videoFReader);
step(videoPlayer, videoFrame);
end
release(videoPlayer);
%% 设置播放方式
% 重置播放器
reset(videoFReader)
% 增加播放器的尺寸
r = groot;
scrPos = r.ScreenSize;
% Size/position is always a 4-element vector: [x0 y0 dx dy]
dx = scrPos(3); dy = scrPos(4);
videoPlayer = vision.VideoPlayer('Position',[dx/8, dy/8, dx*(3/4), dy*(3/4)]);
while ~isDone(videoFReader)
videoFrame = step(videoFReader);
step(videoPlayer, videoFrame);
end
release(videoPlayer);
reset(videoFReader)
%% 获取视频中的图像
videoFrame = step(videoFReader);
n = 0;
while n~=15
videoFrame = step(videoFReader);
n = n+1;
end
figure, imshow(videoFrame)
release(videoPlayer);
release(videoFReader)
读取视频和图片的源文件课添加博主V免费获取,luingtinf1998
发送001即可免费获取。