在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1、求取曲线的斜率和切线a = [47 21; 46 20; 45 19; 44 19;43 18; 42 19;41 20;42 21;43 22].'; sp = spline(1:size(a,2),a); dsp = fnder(sp); d = fnval(dsp, 5); k = d(2)/d(1);
ai = fnval(sp, linspace(1, size(a, 2))); plot(a(1,:), a(2,:),'r+') line(ai(1,:), ai(2,:))
line(a(1,5)+[-5 5],a(2,5)+k*[-5 5],'color','g') 2、给图表添加名字legend('Recovery','Original')%给图表添加名字 pr=minmax(p);%计算每一行的数据范围 利用字符串建立表达式后,再用eval 命令执行它,可以使程序设计更加灵活。 但是注意表达式一定要是字符串。其命令格式为: eval(’字符串’) 例 先定义字符串t 为平方根运算,再用eval 求出1 到10 的平方根。 clear,clc t='sqrt(i)'; for i=1:10 s(i)={char(['The square root of ', int2str(i), ' is ',... num2str(eval(t))])}; %上面大括号{}代表建立数组 end s(:) 例 如果要输入几十个甚至上百个文件,用手工操作十分繁琐,然而灵活运用 eval 函数可以自动完成这一工作。假设数据文件名从data1.dat~data10.dat,放 在D:\matlab\chp 目录下,操作如下: for i=1:10 eval(['load d:\matlab\chp\data',int2str(i),'.dat']) end 3、利用循环打开一个文件夹的所有文件filename1=ls('D:\c盘\毕业论文\数据\2nd_test');%提取文件名,每次必须将文件夹名写入。 cd('D:\c盘\毕业论文\数据\2nd_test')%跳转到要处理的数据所在文件夹 filename=cellstr(filename1); %把细胞数组转化为字符串 filename(1:2)=[]; %删除filename中的...文件名,不知道哪里来的?? num=length(filename); %计算文件个数 j=800; %选择第800组数据 B=filename(j); %获取文件名 C=cell2mat(B); %细胞数组转化为字符串 data1= load(C); %加载文件夹所对应的数据
第四步输入corrcoef(a),可以求a矩阵的相关系数,如果a矩阵是个多维矩阵,可以通过corrcoef(a(:,1),a(:,2))求每一列的相关系数,如下图所示: 4、Arma相关代码y=iddata(x);%将数据转化为ARMAX能识别的类型。 5、可以利用通过直接调用.m函数进行输入数据。[FileName,PathName] = uigetfile('*.txt','Select the Txt file'); cd(PathName); data = load(FileName); 6、求取矩阵X中列的个数;size(X, 2) 7、对数据进行等分%%此程序为将行/列矩阵分成20等分 y=ones(1,3401); x=floor(length(y)/20); y=y(1:(x*20)); b = reshape(y,20,x); 8、用if语句代替for语句,加速执行对于那种有for语句的代码,构建了一个函数,可以通过内部调用函数进行执行,可以提高处理的速度。递归提供好的解决方案。 9、求解陀螺之间的相关系数corrcoefdata=[data1 data2 data3]; corrcoef(data) %求解三个陀螺数据data1和data2和data3的相关系数,用于求解状态变量矩阵Q和Q‘ 10、matlab绘图时快速添加等间隔的坐标例如: plot(1:0.8:2000, 0, 'k');%主要用于控制横坐标的绘制。 结果如上图所示。 11、图片保存技巧
12、对离散序列进行积分Trapz:梯形数值积分 For example X=rand(1,1000) ; T=[1:1000]*(1/1000); Trapz(T,X) ;
clc clear close all %% 获取和跳转到当前m文件的所在文件夹 p1 = mfilename('fullpath'); i=strfind(p1,'\'); p1=p1(1:i(end)); cd(p1)
%% 开始读取文件 location='如何利用matlab循环读取文件夹中的文件/'; temp1 = dir([location, '*.txt']); cd('如何利用matlab循环读取文件夹中的文件') N=length(temp1); for i=1:N data=load(temp1(i).name); end
clc clear close all %% 获取和跳转到当前m文件的所在文件夹 p1 = mfilename('fullpath'); i=strfind(p1,'\'); p1=p1(1:i(end)); cd(p1)
%% 开始读取文件 file_location=[p1,'如何利用matlab循环读取文件夹中的文件'];%注意每次修改文件名 filename1=ls(file_location); %提取文件名 cd(file_location); %跳转到需要读取的文件夹 filename=cellstr(filename1); %把细胞数组转换为字符串 filename(1:2)=[]; num=length(filename); %计算文件个数 for i=1:num data=load(filename{i}); end 14、获取和跳转到当前m文件的所在文件夹p1 = mfilename('fullpath'); i=strfind(p1,'\'); p1=p1(1:i(end)); cd(p1) 15、绘制幅频图mag1=abs(fft(fhat,N))*2/N;%对信号fhat进行快速傅里叶变换。 figure plot(fv(1:N/2),mag1(1:N/2)); 16、读取数据中含有空的文件数据fid=fopen('C:\Users\pgl\Desktop\matab学习\读取含有空的数据\data.txt','r'); [f,count]=fscanf(fid,'%f %f');%从左到右,从上到下读取数据,对于数据中间的空白位置,自动跳过,返回的f为数据,count为数据的个数 fclose(fid); xlswrite('new.xls',f); 17、对具有编号的变量进行赋值data_s是种N行n列的数据,利用n个变量分别为gyro_1…gyro_n的数据。 for i=1:n eval(['gyro','_',num2str(i), ' =data_s;']); end 18、将数据保存成txt格式save raw_data.txt -ascii data 19、matlab离散数据积分有两个序列x,y,则x,y的离散积分为(梯形法计算): T=sum(diff(x).*(y(1:end-1)+y(2:end))/2) 20、Matlab求解矩阵指数函数,——expmsyms t b s ss; expm(([0 1 0;0 0 1;0 0 -b].*t)) 21、一个小图嵌入另bai外一个大图中,matlab举例。程序如du下。t=0:.1:2*pi; plot(t,sin(t),'g'); xlim([0,2*pi]); xlabel('x')ylabel('y')axes('position',[0.55,0.55,0.3,0.3]); %关键在这句!所画的bai小图duplot(t,cos(t)); xlabel('t')ylabel('y')xlim([0,2*pi]);%设置横坐标范围 22、Matlab读取dat文件,以及读取一般文件fileID = fopen('C:\Users\pgl\Desktop\数据采集相关资料\采集数据\SAVE2020_7_8_11-27-35.DAT');%注意修改路径 A= fread(fileID); 23、如何将数据进行列排序,将任何矩阵进行列排序AA = [1 3 4 5 6] AA(:)的结果为: 1 3 4 5 6 AAA = [1 3 4;5 6 7] AAA(:)的结果为 1 5 2 6 3 7 24、读取带汉字的文档fid = fopen('所有人.txt','r','n','UTF-8'); t = 0; while 1 t = t+1; tline = fgetl(fid); if ~ischar(tline) break end disp(tline) allPeaple{t}=tline; end fclose(fid); 25、判断两个细胞数组是否相等(if语句中的判断)isequal(partPeaple(i),allPeaple(j)) 26、simulink library browser 设置字体大小按Ctrl 加 +可以放大字体,按Ctrl 加 -可以缩小字体。alt加1恢复原字体。 27、利用matlab生成.mif文件clc clear close all t = [0:0.1:360];%输入范围0到90°,步长0.1° x = pi*t/180; sin_val = sin(x); fid = fopen('C:\Users\pgl\Desktop\sine.mif','wt'); fprintf(fid,'width=14;\n'); fprintf(fid,'depth=1024;\n'); fprintf(fid,'address_radix=uns;\n'); fprintf(fid,'data_radix=dec;\n'); fprintf(fid,'content begin;\n'); for jresult = 1:1024 i = jresult-1; k = round(sin_val(jresult)*16384); if(k==16384) k = 16384; end fprintf(fid,'%d:%d;\n',i,k); end fprintf(fid,'end;\n'); fclose(fid); plot(sin_val); |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论