各种函数读取导入数据#matlab

1.xlsread函数

假设数据集data

%清空变量
clc
clear
%读取数据
data = xlsread('data.xlsx');

运行后会返回A列的数值型数据
 

%读取特定工作表的数据
data = xlsread('data.xlsx', 'Sheet1');
%读取特定工作表的特定范围的数据
data = xlsread('data.xlsx', 'Sheet1', 'A1:C3');

运行后会返回A列和C列的数值型数据

%读取数值数据、文本和原始数据
[num, txt, raw] = xlsread('data.xlsx');
  • num 包含数值数据 [1.1; 4.1; 7.1]
  • txt 包含文本数据 {'Text1'; 'Text2'; 'Text3'}
  • raw 包含所有数据,包括数值和文本
    {'1.1', 'Text1', '3.1'; '4.1', 'Text2', '6.1'; '7.1', 'Text3', '9.1'}

xlsread函数的注意事项:

(1)兼容性xlsread 适用于 Windows 平台并且需要安装 Microsoft Excel。

(2)落后性:在较新的 MATLAB 版本中,xlsread函数有时会出错,因此,新版本里,例如matlab2023,不推荐使用xlsread

2.readtable函数

% 读取 CSV 文件
T = readtable('data.csv');

% 读取指定的工作表和范围的 Excel 文件
T = readtable('data.xlsx', 'Sheet', 'Sheet1', 'Range', 'A1:C10');
%用于读取表格数据文件,如 CSV、Excel 文件等,并返回一个“表格”。

3.load函数

%1. excel转mat

% 指定 Excel 文件名

filename = 'v0data.xlsx';

% 读取 Excel 文件

data0= readtable(filename);

% 指定要保存的文件名

mat_filename = 'v0data.mat';

% 保存数据为 .mat 格式文件

save(mat_filename, 'data');

%2. 加载所有变量
load('v0data.mat');

%3.加载指定变量
load('v0data.mat', 'var1', 'var2');

4.readcell、importdata和readmatrix函数

% 读取 CSV 文件
M = readmatrix('data.csv');
% 读取指定的工作表和范围的 Excel 文件
M = readmatrix('data.xlsx', 'Sheet', 'Sheet1', 'Range', 'A1:C10');
%用于读取数值数据文件,如 CSV、Excel 文件等,并返回一个"矩阵"。

% 读取 CSV 文件
C = readcell('data.csv');
% 读取 Excel 文件
C = readcell('data.xlsx', 'Sheet', 'Sheet1', 'Range', 'A1:C10');
%用于读取文件中的混合类型数据,并返回一个单元数组。

% 读取文本文件
data = importdata('data.txt');
% 读取 CSV 文件
data = importdata('data.csv');
%用于读取多种格式的数据文件,包括文本、CSV、和 .mat 文件等。

5.textscan函数

%假设我们有一个名为 data.txt 的文本文件,内容如下:
%1.1,Text1,3.1
%4.2,Text2,6.2
%7.3,Text3,9.3
%标准用法
fileID = fopen('filename.txt','r');
data = textscan(fileID, formatSpec);
%fileID: 文件标识符,由 fopen 返回。
%formatSpec: 格式说明符,指定如何解析文件中的数据。
fclose(fileID);

%以data.txt为实例
%读取每一列的数据,并将其存储在不同的变量中。
% 打开文件
fileID = fopen('data.txt', 'r');
% 按格式读取数据
data = textscan(fileID, '%f %s %f', 'Delimiter', ',');%以","作为分隔符将数据分列
% 关闭文件
fclose(fileID);

% 提取各列数据
col1 = data{1};  % 第一列浮点数
col2 = data{2};  % 第二列字符串
col3 = data{3};  % 第三列浮点数

输出结果如下:

第一列:
    1.1000
    4.2000
    7.3000
第二列:
    'Text1'
    'Text2'
    'Text3'

第三列:
    3.1000
    6.2000
    9.3000
如果txt内容为:
1.1 | Text1 | 3.1
4.2 | Text2 | 6.2
7.3 | Text3 | 9.3
则代码修改为:

% 打开文件
fileID = fopen('data.txt', 'r');
% 按格式读取数据
data = textscan(fileID, '%f %s %f', 'Delimiter', ' | ');
% 关闭文件
fclose(fileID);

6.table2array函数

data= table2array(readtable('data.xlsx'));

将table格式数据转换成double

### 在 MATLAB 中定义自定义函数 `readmatrix` 在 MATLAB 中,可以通过创建一个 `.m` 文件来定义自定义函数。以下是如何定义一个名为 `readmatrix` 的自定义函数的详细说明: #### 函数定义结构 MATLAB 中的函数通常以关键字 `function` 开始,后跟输出参数、函数名称和输入参数。对于 `readmatrix`,可以根据需求定义其功能。例如,假设我们希望该函数从文件中读取矩阵数据并返回结果。 以下是实现的一个示例代码块: ```matlab function A = readmatrix(filename, opts) % READMATRIX 从文件中读取矩阵。 % A = readmatrix(filename) 从指定文件名中读取矩阵。 % A = readmatrix(filename, opts) 使用额外选项读取矩阵。 % A = readmatrix(___, Name, Value) 使用命名-值对参数进行更灵活的配置。 % 默认选项设置 if nargin < 2 opts = struct('Sheet', 1, 'Range', 'A1:D10'); % 默认从第一个工作表的 A1:D10 范围读取 end % 检查文件是否存在 if ~exist(filename, 'file') error('文件不存在: %s', filename); end % 根据文件类型调用不同的读取方法 [fileRoot, fileExt] = fileparts(filename); switch fileExt case '.csv' % 对于 CSV 文件,使用 csvread 或 readtable A = csvread(filename); case '.xls' case '.xlsx' % 对于 Excel 文件,使用 xlsread [num, txt, raw] = xlsread(filename, opts.Sheet, opts.Range); A = num; % 假设只关心数值数据 otherwise error('不支持的文件类型: %s', fileExt); end end ``` #### 注意事项 上述代码实现了基本的文件读取功能,并根据文件扩展名选择不同的读取方法[^4]。此外,还提供了默认选项和错误处理机制以增强函数的鲁棒性。 #### 使用示例 以下是如何调用该自定义函数的示例: ```matlab % 示例 1:读取 CSV 文件 filename = 'data.csv'; A = readmatrix(filename); % 示例 2:读取 Excel 文件并指定选项 filename = 'basic_matrix.xlsx'; opts = struct('Sheet', 'Sheet2', 'Range', 'B2:E6'); A = readmatrix(filename, opts); ``` #### 定义函数的步骤 1. 打开 MATLAB 编辑器。 2. 将上述代码粘贴到编辑器中。 3. 将文件保存为 `readmatrix.m`。 4. 确保保存路径在 MATLAB 的搜索路径中,或者使用 `addpath` 添加路径。 #### 引用补充 需要注意的是,MATLAB 已经内置了 `readmatrix` 函数[^1],因此如果定义同名的自定义函数,可能会导致冲突。为了避免这种情况,建议将自定义函数命名为其他名称,例如 `my_readmatrix`[^5]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值