文章目录
- Excel文件转Mat或工作区
- 从Excel文件读取数据并转换为.mat文件
- 从Excel文件读取数据并加载到工作区
- Mat文件转Excel
- Excel快速实现万行级填充
- 各种数据类型的操作
- 创建结构体
- 访问结构体字段
- 修改结构体字段的值
- 添加新字段
- 删除字段
- 遍历结构体字段
Excel文件转Mat或工作区
在MATLAB中,你可以使用readtable
函数将Excel文件读取为表格,然后将表格转换为结构体,并最终保存为.mat文件或者加载到工作区。下面是一个简单的示例:
从Excel文件读取数据并转换为.mat文件
% 读取Excel文件
excelfile = 'data.xlsx';
dataTable = readtable(excelfile);
% 将表格转换为结构体
dataStruct = table2struct(dataTable);
% 保存结构体为.mat文件
save('data.mat', '-struct', 'dataStruct');
disp('Excel file has been converted to MAT file successfully.');
从Excel文件读取数据并加载到工作区
% 读取Excel文件
excelfile = 'data.xlsx';
dataTable = readtable(excelfile);
% 将表格转换为结构体
dataStruct = table2struct(dataTable);
% 将结构体加载到工作区
assignin('base', 'dataStruct', dataStruct);
disp('Excel file data has been loaded into the workspace.');
在这两个示例中,readtable
函数用于读取Excel文件,然后使用table2struct
函数将表格转换为结构体。最后,可以选择保存结构体为.mat文件,或者将结构体加载到MATLAB工作区。记得替换文件名和变量名以适应你的实际情况。
Mat文件转Excel
在MATLAB中,你可以使用save
命令将.mat文件保存为Excel文件。下面是一个简单的示例:
% 创建一个示例的结构体
data.name = {'John', 'Alice', 'Bob'};
data.age = [30, 25, 35];
data.city = {'New York', 'London', 'Tokyo'};
% 保存结构体为.mat文件
save('data.mat', 'data');
% 将.mat文件转换为Excel文件
matfile = 'data.mat';
excelfile = 'data.xlsx';
% 使用`struct2table`将结构体转换为表格
dataTable = struct2table(load(matfile));
% 将表格写入Excel文件
writetable(dataTable, excelfile);
disp('MAT file has been converted to Excel successfully.');
上述示例中,首先创建了一个结构体data
,然后使用save
命令将该结构体保存为.mat文件。接下来,使用load
加载.mat文件,并使用struct2table
将结构体转换为表格。最后,使用writetable
将表格写入Excel文件。
或者:
1.把你需要转换的mat数据文件导入到工作区,默认命名data
load('xxx.mat') %%xxx为需要转换的mat文件名
或者在matlab的当前文件夹区双击该文件,matlab自动导入数据
2.在命令行窗口输入(建议转成xls格式,python新的xrdl现在不支持xlsx格式,转换比较麻烦)
xlswrite('yyy.xls',data) %%yyy为输出的excel文件名
转换好的Excel文件会自动保存在原mat文件同目录下
Excel快速实现万行级填充
各种数据类型的操作
比如struct
类型,在MATLAB中,struct(结构体)是一种用于存储不同类型数据的容器。可以通过不同的字段来访问和操作结构体中的数据。以下是一些对struct类型进行操作的基本示例:
创建结构体
% 创建一个简单的结构体
person.name = 'John';
person.age = 30;
person.city = 'New York';
% 显示结构体内容
disp(person);
访问结构体字段
% 访问结构体字段
disp(['Name: ' person.name]);
disp(['Age: ' num2str(person.age)]);
disp(['City: ' person.city]);
先对结构体数组进行索引,得到待访问的结构体。再通过待访问的结构体.字段名获取该结构体的该字段的数据。此外,如果该字段的数据是一个数组,还可以对该数组进一步索引。
修改结构体字段的值
% 修改结构体字段的值
person.age = person.age + 1;
% 显示更新后的结构体
disp(['Updated Age: ' num2str(person.age)]);
添加新字段
% 添加新字段
person.gender = 'Male';
% 显示更新后的结构体
disp(person);
删除字段
% 删除结构体字段
person = rmfield(person, 'city');
% 显示更新后的结构体
disp(person);
遍历结构体字段
% 遍历结构体字段
fields = fieldnames(person);
for i = 1:length(fields)
field = fields{i};
value = person.(field);
disp([field ': ' num2str(value)]);
end
这些是一些基本的struct操作示例,你可以根据实际需要进行更复杂的操作。结构体在MATLAB中通常用于组织和存储相关的数据,便于管理和访问。