MatLab数据结构
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MatLab数据结构相关的知识,希望对你有一定的参考价值。
参考技术A MatLab数据类型主要分为 逻辑类型 、 数值类型 、 字符类型 、 结构类型 、 单元数组 、 函数句柄 、 映射容器 和 表格类型 。
【注】详细说明请善用MatLab中的 help xxx
MatLab创建逻辑矩阵格式:
其中,A为矩阵。对于A中任意非零元素都将转换为逻辑 1,零元素则转换为逻辑 0。
【注】复数值和NaN不能转换为逻辑值。
【注】
MatLab 中的字符/字符串是存储在行向量中的文本,该行向量中的每一个元素代表一个字符。每个字符的值对应其所对应的 ASCII 码值,故字符串是 ASCII 值的数值数组,访问方式同 MatLab 中的数组。
MatLab 中的 结构类型 与 C 语言类似,一个结构可以通过字段存储多个不同类型的数据。
单元数组是一种广义矩阵,每个单元可以包括一个任意数组或另一个单元数组,故每一个单元可以具有不同的尺寸和内存占用空间。
创建函数句柄需要使用到操作符 @ ,使用函数句柄可以实现对函数的间接调用。
创建函数句柄的一般语法格式:
其中, @ 是句柄创建操作符,Function_Handle 变量保存了该函数句柄,Function_Filename 是函数对应的 .M 文件或 MatLab 内部函数名。
函数句柄创建后就可以通过函数句柄来调用函数:
MatLab 库函数提供了许多处理函数句柄的操作函数,将函数句柄的功能与其他数据类型联系起来,扩展了函数句柄的应用。
映射容器(Map对象)可以将一个量映射到另一个量,构成一个 键值 对。映射容器是一种快速键查找的数据结构。
映射容器是Map类的对象,而Map类的所有对象都具有 3 种属性。
Map对象查看属性直接利用 . 运算符: mapObj.Count 、 mapObj.KeyType 、 mapObj.ValueType
表格类型(table)是一种可以包含不同类型数据的表数组。table数组存储列向数据或表格数据,表将每一段列向数据存储在一个变量中,表变量可以具有不同的数据类型和大小,但要求所有变量具有相同的行数。
matlab批量读取数据
例如我的当前文件夹下有许多excel(后缀名为.xls),我需要读取的数据位置是A2:A37,而且这些EXCEL文件名称是有规律的,例如
060101.xls,060102.xls,060103.xls,...060112,070101.xls,070102.xls,070103.xls,...,070112.xls.我的想法是把这些文件的所有的A2:A37都提取出来,赋到一个矩阵里,可是该怎么做呢?哪个大神能帮我一下,感激不尽。
% 先取得文件名列表,用循环逐个读取文件,再对矩阵进行拼接,应该可以解决你的问题,
% 如有疑问请进一步提出
files = dir('*.xls'); % 获取所有的 excel 文件名,
% 需将准备读取数据的 excel 文件存放在同一目录中,
% 并将该目录设为当前目录。
l = length(files); % 获取文件的个数
B=[]; % B 用于存放结果
for i=1:l % 遍历所有的文件
filename = files(i).name; % 逐个取得文件名
A = xlsread(filename,'A2:A37'); % 读对应位置的数据
B = [B A]; % 拼接矩阵
end
msgbox(['complete! ' num2str(l) ' xls files.']); % 提示完成,并显示读取的文件个数
% 用简单的四个 xls 文件测试了一下,程序可以正常运行,workspace截图如下:
参考技术A 建议先将excel表格拖到matlab工作区,使其成为mat格式的数据,然后通过简单的编程就可以将任意值赋值到矩阵的任意位置了。mat格式matlab能更好的识别与处理,也是matlab处理数据的基础。
以上是关于MatLab数据结构的主要内容,如果未能解决你的问题,请参考以下文章