最近在学MATLAB,如果没有习题练手怎么也记忆不牢固,因此,下面有几道习题对MATLAB基础知识进行训练,帮助大家尽快熟练上手MATLAB。 【注】:请务必独立思考后再看参考程序,这样才能提高编程能力。
任务说明: 读入usedata.mat文件,该数据包含多组测试数据,第一列为数据标号,用于区分各组数据;第二列为各数据点的x;第三列为各数据点的y; (资源参考:https://download.csdn.net/download/didi_ya/12997609(免费,无需积分)) 达成功能: 将所给文件的数据相同数据标号的数据分到一个cell中。
使用到的知识点:cell。
代码示例:
clear all;clc; load usedata.mat%加载usedata.mat文件 %usedata(:,1); linename=unique(usedata(:,1));%从小到大排序且不含重复项,即组名 [linenum,~]=size(linename);%有几个组 linedatanum=zeros(linenum,2);%初始化 linedatanum(:,1)=linename;%第一列为组标号 for kk=1:linenum%1:10 [m,n]=find(usedata(:,1)==linename(kk,1));%遍历找到每一个组的行数和列数 line1=usedata(m,:);%一次取出一个组的内容 linedatanum(kk,2)=size(line1,1);%求该组的行数,并转化为向量形式 end C=mat2cell(usedata,linedatanum(:,2))%将文件内的数据转换为若干个元胞数组【注】:关于函数find和unique的详细解释及用法,可参考MATLAB官方文档: https://ww2.mathworks.cn/help/pdf_doc/matlab/matlab_refbook_zh_CN.pdf
(未完待续)
有其它任何疑问也欢迎评论区告知~