目录
1. 文本文件(.txt)
(1)使用readtable函数读取文本文件
% 读取文本文件
filename = 'data.txt';
% 使用readtable函数读取文本文件
data = readtable(filename);
% 查看读取的数据
disp(data);
(2)使用fopen和fgetl函数逐行读取文本文件
% 读取文本文件
filename = 'data.txt';
% 打开文件
fileID = fopen(filename, 'r');
% 按行读取文件内容
data = [];
tline = fgetl(fileID);
while ischar(tline)
data = [data; tline];
tline = fgetl(fileID);
end
% 关闭文件
fclose(fileID);
% 查看读取的数据
disp(data);
(3)使用fopen和sscanf函数来逐行读取文本文件
% 读取文本文件
filename = 'data.txt';
% 打开文件
fileID = fopen(filename, 'r');
% 按行读取文件内容
data = [];
tline = fgets(fileID);
while ischar(tline)
data = [data; tline];
tline = fgets(fileID);
end
% 关闭文件
fclose(fileID);
% 解析读取的数据,使用sscanf函数对每行数据进行解析。
parsedData = cell(size(data));
for i = 1:numel(data)
parsedData{i} = sscanf(data{i}, '%f');%假设每行数据包含浮点数
end
% 查看读取的数据
disp(parsedData);
注:fgetl和fgets都是从文本文件里面读一行的内容,差别在于,前者返回的结果中包含换行符而后者忽略换行符。另外还有一点,fgets 调用时可以附加一个参数,指定一次最多读多少个字符(在行很长的时候避免消耗资源太大)。
(4)textscan用于按照指定的格式读取文本文件中的数据,并将其存储为单元格数组
% 读取文本文件并存储为单元格数组
filename = 'data.txt';
fileID = fopen(filename, 'r');
formatSpec = '%f %f %f'; % 替换为您的数据格式
data = textscan(fileID, formatSpec);
fclose(fileID);
disp(data);
(5)importdata用于读取包括文本文件在内的各种不同格式的数据文件,它可自动推断数据的格式,并返回一个结构数组
% 读取文本文件并存储为结构数组
filename = 'data.txt';
data = importdata(filename);
disp(data);
(6)dlmread函数用于读取以特定分隔符分隔的文本文件中的数据,并将其存储为数值数组
% 读取以逗号分隔的文本文件并存储为数值数组
filename = 'data.txt';
data = dlmread(filename, ',');
disp(data);
2. csv文件(逗号分隔值)
(1)readtable函数用于读取包含表格数据的CSV文件,并将其存储为表格数据类型
% 读取CSV文件并存储为表格
filename = 'data.csv';
data = readtable(filename);
disp(data);
(2)csvread函数用于读取CSV文件中的数据,并将其存储为数值数组
% 读取CSV文件并存储为数值数组
filename = 'data.csv';
data = csvread(filename);
disp(data);
(3)textscan函数也可以用来读取CSV文件,并将其存储为单元格数组
% 读取CSV文件并存储为单元格数组
filename = 'data.csv';
fileID = fopen(filename, 'r');
formatSpec = '%f %f %f'; % 替换为自己的数据格式
data = textscan(fileID, formatSpec, 'Delimiter', ',');
fclose(fileID);
disp(data);
3. Excel文件(.xls、.xlsx)
(1)xlsread
函数用于读取Excel文件中的数据,并将其存储为数值数组或单元格数组
% 读取Excel文件并存储为数值数组
filename = 'data.xlsx';
data = xlsread(filename);
disp(data);
(2)
readtable函数也可以用于读取Excel文件,并将其存储为表格数据类型
% 读取Excel文件并存储为表格
filename = 'data.xlsx';
data = readtable(filename);
disp(data);
4. 图像文件(.jpg、.png、.tif)
(1)imread函数用于读取图像文件,并将其存储为图像矩阵
% 读取.jpg文件
filename = 'image.jpg';
% filename = 'image.png';
% filename = 'image.tif';
imageData = imread(filename);
imshow(imageData);
(2)
imformats函数可以返回Matlab支持的图像文件格式列表
formats = imformats();
disp(formats);
(3)使用geotiffread
函数读取带有地理坐标的.tif栅格数据
确保已经安装了MATLAB的Mapping Toolbox。如果没有安装,可以通过MATLAB的Add-Ons管理器进行安装。
[im, R] = geotiffread(filename);
% im是读取的图像数据,R是地理参考对象,包含了地理坐标信息
% 如果需要查看地理坐标信息,可以使用geotiffinfo函数
info = geotiffinfo(filename);
% info对象包含了.tif文件的详细信息,包括地理坐标系统和投影信息
% 使用mapshow函数可以将栅格数据显示在地理坐标系中
mapshow(im, R);
5. 视频文件(.avi、.mp4)
(1)VideoReader类用于读取视频文件,并提供对视频帧的访问
% 读取.avi文件
filename = 'video.avi';
% filename = 'video.mp4';
videoObj = VideoReader(filename);
% 遍历视频的每一帧
while hasFrame(videoObj)
frame = readFrame(videoObj);
imshow(frame);
end
(2)vision.VideoFileReader对象也可用于读取视频文件,并提供对视频帧的访问
% 读取.avi文件
filename = 'video.avi';
% filename = 'video.mp4';
videoObj = vision.VideoFileReader(filename);
% 遍历视频的每一帧
while ~isDone(videoObj)
frame = step(videoObj);
imshow(frame);
end
5. NetCDF文件
(通常用于存储海洋和气象数据)
(1)ncread函数用于读取NetCDF文件中的变量数据
% 读取NetCDF文件
filename = 'data.nc';
% 读取单个变量
varData = ncread(filename, 'variable_name');
disp(varData);
% 读取多个变量
varData1 = ncread(filename, 'variable_name1');
varData2 = ncread(filename, 'variable_name2');
disp(varData1);
disp(varData2);
(2)ncinfo函数可以获取NetCDF文件的信息,包括变量、维度等
% 获取NetCDF文件信息
filename = 'data.nc';
fileInfo = ncinfo(filename);
% 显示变量信息
disp(fileInfo.Variables);
% 显示维度信息
disp(fileInfo.Dimensions);
(3)ncdisp
函数可以以更详细的方式显示NetCDF文件的信息
% 显示NetCDF文件信息
filename = 'data.nc';
ncdisp(filename);
6. fopen、fread、fwrite、fscanf
(1)fopen函数用于打开文件,并返回文件标识符
% 打开二进制文件
filename = 'data.bin';
fileID = fopen(filename, 'r'); % 'r'表示以只读方式打开文件
% 检查文件是否成功打开
if fileID == -1
error('无法打开文件');
end
% 其他操作,如读取数据或写入数据
% 关闭文件
fclose(fileID);
(2)fread函数用于从打开的文件中读取二进制数据
% 打开二进制文件
filename = 'data.bin';
fileID = fopen(filename, 'r'); % 'r'表示以只读方式打开文件
% 检查文件是否成功打开
if fileID == -1
error('无法打开文件');
end
% 读取二进制数据
data = fread(fileID, [rows, columns], precision);
% 关闭文件
fclose(fileID);
注:fopen函数使用文件名和打开模式作为参数,返回一个文件标识符,用于后续的文件操作。'r'表示以只读方式打开文件。fread函数使用文件标识符、数据大小(由[rows, columns]指定)和数据精度(由precision指定)作为参数。它将返回从文件中读取的二进制数据。
(3)fwrite函数用于将数据以二进制形式写入文件
% 打开二进制文件
filename = 'data.bin';
fileID = fopen(filename, 'w'); % 'w'表示以写入方式打开文件
% 检查文件是否成功打开
if fileID == -1
error('无法打开文件');
end
% 写入二进制数据
data = [1 2 3 4 5]; % 要写入的数据
fwrite(fileID, data, 'double'); % 'double'表示数据类型为双精度浮点数
% 关闭文件
fclose(fileID);
(4)fscanf函数用于从文件中按格式读取数据
% 打开文本文件
filename = 'data.txt';
fileID = fopen(filename, 'r'); % 'r'表示以只读方式打开文件
% 检查文件是否成功打开
if fileID == -1
error('无法打开文件');
end
% 读取数据
formatSpec = '%f'; % 格式字符串,此处使用%f表示读取浮点数
data = fscanf(fileID, formatSpec);
% 关闭文件
fclose(fileID);