### MATLAB常用操作知识点 #### 一、读取Excel表格数据为MATLAB矩阵 在MATLAB中,经常需要从Excel文件中读取数据进行处理。`xlsread` 函数提供了多种方式来实现这一目的: 1. **读取整个工作页的数据** `num = xlsread('filename')` 此命令将读取`filename`的第一个工作页中的所有数据到`double`类型的变量`num`中。默认情况下,会忽略表头和最后一列中的文本数据,而其他单元格中的文本数据会被读取为`NaN`。 2. **手动选择数据块** `num = xlsread('filename', -1)` 用户可以通过这种方式手动框选需要读取的数据范围,读取的数据将会存储到矩阵`num`中。 3. **读取特定工作页的数据** `num = xlsread('filename', sheet)` 可以通过指定`sheets`参数来读取`filename`中特定的工作页的数据到矩阵中。 4. **读取指定区域的数据** `num = xlsread('filename', 'range')` 可以通过指定`range`参数来读取`filename`中第一页的指定区域的数据到矩阵中。例如:`num = xlsread('a1.xls', 'A2:G2')` 5. **读取特定工作页和区域的数据** `num = xlsread('filename', sheet, 'range')` 可以同时指定工作页和数据范围,如`num = xlsread('filename', 'Sheet2', 'A2:G2')` 6. **基本模式读取数据** `num = xlsread('filename', sheet, 'range', 'basic')` 这种模式下,`range`参数会被忽略,同时会以一种受限的方式读取数据,此时`sheet`必须是带引号的字符串且区分大小写。这种模式不使用Excel作为COM服务器。 7. **同时读取数字和文本数据** `[num, txt] = xlsread('filename')` 这种方式可以同时读取数字数据到`num`中,以及文本数据到字符串单元数组`txt`中。`txt`中对应的数值数据的位置会被设置为空字符串。 8. **读取数据并保留原始数据格式** `[num, txt, raw] = xlsread('filename')` 这种方式可以同时读取数字数据到`num`中,非数值的文本数据到字符串单元数组`txt`中,而原始单元数据则会保存到字符串单元数组`raw`中。 示例代码: ```matlab num = xlsread('locationinformation.xls', 'A1:G14'); ptest = a; result = sim(net, ptest)'; ``` #### 二、读取MATLAB矩阵为Excel表格数据 将MATLAB中的矩阵数据保存为Excel文件同样非常重要。可以使用`xlswrite`函数来完成这项任务: ```matlab % 假设aaa是你想要保存的矩阵 loadXXX.mat % 加载数据 aaa % 读取矩阵数据 xlswrite('YYY.xlsx', aaa); % 将aaa保存为Excel文件 ``` #### 三、查找矩阵中的行和列并删除 1. **删除特定条件下的行或列** `hx(find(abs(hx) < 0.15), :) = 0;` 这条命令会找到绝对值小于0.15的行,并将其置零。 2. **查找并删除特定值的行** ```matlab [x1, y1] = find(hx(peaks.hx) == 0); a = hx(peaks.hx); a(x1, :) = []; ``` 该命令用于查找矩阵`hx`中特定位置(如`peaks.hx`)的0值,并将其删除。 3. **查找最大值及其位置** `[ab] = max(A)` 返回最大值及最大值的位置。 ```matlab [x, y] = find(a == max(a(:))); % 查找二维矩阵的最大值位置 [x, y] = find(a == max(max(A))); % 查找二维矩阵的最大值位置 ``` 对于高维矩阵,可以结合使用`find`与`ind2sub`来查找最大值的位置: ```matlab ind = find(a == max(a(:))); [x, y, z] = ind2sub(size(a), ind); ``` #### 四、寻找峰值 1. **使用`findpeaks`函数** `findpeaks`函数用于查找向量中的峰值。例如: ```matlab a = [1 3 2 5 6 8 5 3]; % 示例向量 pks = findpeaks(a); % 找到峰值 [pks, locs] = findpeaks(a); % 同时获取峰值和位置 ``` 可以通过设置额外的参数来细化峰值搜索的要求: ```matlab [] = findpeaks(a, 'minpeakheight', mph); % 设置最小峰值高度 [] = findpeaks(a, 'minpeakdistance', mpd); % 设置两峰值之间的最小距离 [] = findpeaks(a, 'threshold', th); % 设置阈值 [] = findpeaks(a, 'npeaks', np); % 设置最多查找的峰值数量 [] = findpeaks(a, 'sortstr', str); % 按升序或降序排序结果 ``` 2. **自定义算法寻找峰值** 如果需要更复杂的峰值检测逻辑,可以使用自定义的方法: ```matlab IndMin = find(diff(sign(diff(data))) > 0) + 1; % 波谷点 IndMax = find(diff(sign(diff(data))) < 0) + 1; % 波峰点 ``` 其中,`data(IndMin)`表示波谷点的数据,`data(IndMax)`表示波峰点的数据。 #### 五、获取矩阵的尺寸信息 1. **获取矩阵的维数** `ndims(A)` 返回矩阵`A`的维数,例如一个三维矩阵的维数为3。 这些知识点涵盖了MATLAB中关于读取Excel文件、操作矩阵的基本技能,适用于初学者和进阶用户。掌握这些技巧可以帮助用户更高效地进行数据分析和科学计算。
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 喷塑六轴机器人设计x_t全套技术资料100%好用.zip
- 云开发校园宿舍/企业/部门/物业故障报修小程序源码
- 一款轻量且高效的Excel读写工具,它具有包体小、接入代码量少和运行时消耗资源少等优点 它支持10M内存读写百万级数据,同时支持Stream+Lambda方式读文件使你可以像操作集合类一样操作Exce
- [完结16章附课件]手把手带你实战一线大厂微服务全链路追踪
- 相平面法 “质心侧偏角-质心侧偏角速度” 可自主调节参数根据不同的速度和车轮转角以及前后轮的滑移率等变量生成相平面图,更加有利于状态分析 包含m文件以及资料,非常详细,通俗易懂
- (177443464)Python实现的热点舆情分析统计系统.zip
- mysql5.7的docker镜像
- (175960652)用于深度学习 (YOLO)准备数据集中的数据标注软件 - labelimg
- (179305024)人口普查数据(五 、六、七普)
- (42920418)全国第七人口普查数据(到各省).xls
- (176671056)JAVA课程设计,学生管理系统,设计SQL server数据库操作
- (174724650)小米商城(HTML+CSS)网页设计期末作业
- (178777442)HTML实验小米商城首页
- 基于java+springboot+mysql+微信小程序的百货中心供应链管理系统 源码+数据库+论文(高分毕业设计).zip
- 基于java+springboot+mysql+微信小程序的毕业生就业信息管理系统 源码+数据库(高分毕业设计).zip
- (171059634)小米官网界面html,css,img,js