MATLAB学习
井底之蛤
后来啊遇到的人都来自鹅山
展开
-
结构体+函数句柄实现轻量化类
类有助于实现数据和函数的管理,降低程序中的耦合程度,利用结构体和函数句柄能够实现轻量化类的效果,由于有些类属性和成员较为简单,不需要进行专门写为类。例如飞行器:p.vehicle.Sref=130;p.vehicle.m=44000;p.vehicle.CD=@(Ma,alpha) -0.0017*Ma^4+0.1132*alpha;这样在编程时非常简洁...原创 2021-08-11 15:53:00 · 219 阅读 · 0 评论 -
matlab 交互界面设计
1、回调函数没报错直接退出一般是由于函数当中有clear命令,删除了交互界面handle2、多界面和标签页可以通过面板实现,设置面板的visible属性即可3、动画卡顿可以通过设置属性值实现快速刷新...原创 2021-08-03 21:57:21 · 2504 阅读 · 0 评论 -
matlab 神经网络工具使用
1、输入nnstrat进入界面/打开应用程序中的工具2、输入和输出数据为矩阵形式,每一行或每一列为一个样本,输入为input、输出为target3、epoch代表迭代次数4、可以设置隐含层个数和算法5、训练完后可以选择重新训练或保存为函数或simulink模型6、一路点next即可7、气动参数拟合效果挺好...原创 2021-08-03 21:52:58 · 957 阅读 · 1 评论 -
声呐矩形图像转换为扇形算法
clear;clc;close;%% 读取输入图像数据imIn=imread('lion.jpg');imIn=flip(imIn);% 倒置读入图像数据[hIn,wIn,~]=size(imIn);% 输入图像的宽和高%% 根据扇形几何关系计算输出图像像素angle=15; % 张开角度的一半ratio=8/11; % 假定Llength/(Llength+Lstart)=8/9,要求<1hOut=ceil(hIn/ratio); .原创 2021-08-01 09:24:18 · 2822 阅读 · 4 评论 -
matlab 面向对象学习笔记(二)
1、使用程序的方式进行GUI编程main.m% 构造初始数据balance=500;input=0;% 构建figure对象和控件hfig=figure('pos',[100,100,300,300]);withdrawButton=uicontrol('parent',hfig,'string','withdraw','pos',[60 28 60 28]);depositButton =uicontrol('parent',hfig,'string','deposit','pos',原创 2021-07-20 00:12:51 · 324 阅读 · 0 评论 -
matlab 面向对象学习笔记(一)
面向对象编程(Object Oriented Programming,OOP)1、翻译翻译什么是TMD的对象?对象是具体的东西,具体事物都有其属性(property),具体事物还有其行为(无论主动还是被动)2、什么是类类是对相似对象的抽象,具有相同的属性和行为,例如:f=figure,figure是类,f是对象。3、面向对象有什么优点?①面向对象心情愉悦①面向对象将大问题分解为小的对象,面向过程是通过数据及函数来处理问题,即数据在函数间的流淌。而面向对象是将问题模块化,模块里面有原创 2021-07-19 20:55:21 · 545 阅读 · 3 评论 -
matlab调用文件夹中子函数
当我们算法比较复杂时需要写大量的函数,我们希望将某一方面的所有相关函数整理在一个文件夹中,较好的办法是采用类,将相关的函数写在一个类的文件夹下,但大多数时候我们并不打算或没有时间去改写为类,这就需要我们去添加路径。matlab默认函数只能调用本文件夹中的函数或是工具箱中已经添加了路径的函数。对于子文件夹中的函数我们需要在程序调用前添加其路径,路径分为绝对路径和相对路径,方便起见写相对路径,值得注意的是我们有时需要修改文件夹的名称或是删除了某些函数,这时我们需要删除已添加路径,以免matlab警告:原创 2021-04-28 20:19:18 · 4320 阅读 · 0 评论 -
matlab与mysql连接问题之SSL报错
1、首先下载MySQL2、下载MySQL的可视化界面Navicat,不然只能通过命令行3、下载JDBC进行MySQL与matlab的数据传输这些步骤参考https://blog.csdn.net/zzx2016zzx/article/details/86532429?spm=1001.2014.3001.5506值得注意的是所有资源均可免费下载,自己搜索即可:https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.4原创 2021-04-18 18:41:40 · 331 阅读 · 0 评论 -
卡尔曼滤波学习
clear;clc;F=[1 1;0 1];B=[0.5;1];H=[0 1];X=[10; 10];%初始状态U=1;%加速度P=[1 0;0 1];%初始协方差矩阵Q=[0.001 0;0 0.001];Z=1:1000;%测量值,匀加速运动noise=15*randn(1,1000);%测量噪声100个Z=Z+noise;R=1;state=zeros(2,1000);for i=1:1000 state(:,i)=X; %根据上步最优值计算估计值 X_.原创 2021-01-11 22:34:01 · 237 阅读 · 0 评论 -
fmincon 目标函数和非线性约束函数传参
fmincon的功能是求解有约束非线性规划问题基本调用格式[x,y]=fmincon('objFun',X0,A,b,Aeq,beq,lb,ub,nonlincon',options)objFun指目标函数nonlincon指非线性约束函数注1:线性约束为空时要写为A=[]; X0是指优化变量,目标函数根据X0判断优化变量数 lb ub可以实现定值约束,方便处理终端约束注2:当目标函数和非线性约束函数需要其他辅助参数时可以通过以下三个方式实现传参 ...原创 2020-12-21 11:28:26 · 2250 阅读 · 0 评论 -
matlab绘制共用x轴图像 subplot子图不显示问题
subplot绘制子图会自动分配子图范围避免子图重叠,我们绘制共用x轴图时需要若干图的x轴重叠,会出现子图不显示的问题,这是由于subplot判定子图重叠,然后被后续子图覆盖了,解决办法是先画子图再调整子图位置。下面是我复现一篇论文的例子,四个图共用一个x轴:clc;close;h1=subplot(4,1,1);plot(t,H,'*')hold onplot(t,H)set(gca,'xticklabel',[],'YLim',[30 90]);ylabel('H km')h2=原创 2020-12-21 17:08:30 · 8615 阅读 · 2 评论 -
matlab动画制作思路
matlab动画采用每帧播放的策略1、首先将不变的部分初始化为背景plot(背景)backGround=gcf;若背景会在后续发生变化,设个临时变量picTemp=backGround;2、变化修改的部分设置在循环里面for。。。hold offpicTemp;%先画背景hold onh=plot(变化);pause(1)%停顿1sdrawnow%更新画布delete(h)%删掉动画部分end3 更新背景plot(背景更新部分)picT原创 2020-11-29 10:02:56 · 737 阅读 · 0 评论 -
simulink仿真结果剧烈震荡的一个原因
simulink模型仿真后有时会发现结果图像呈现十分剧烈的等幅振荡的现象,可能的原因之一是我们在其中使用了积分模块,积分模块采用默认的变步长。这也给我们一个启示就是在调用一个模块的时候要注意其可以设置的部分是哪些,比如积分模块就有许多种方式可供选择,我们常用的是龙格库塔方法,但不注意采用了系统默认的方法就有可能出现问题。若不去注意出现问题会浪费很多时间去摸排。...原创 2020-08-30 16:01:17 · 7854 阅读 · 1 评论 -
遗传算法的一个基本例子(含演变动画)
遗传算法的matlab实现%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Genetic Algorithms %% Author:Ji Jungang Time:2020/08/23 %% 对于多变量问题,交叉和变异以及fitn原创 2020-08-29 13:10:51 · 1048 阅读 · 0 评论 -
matlab如何安装自己下载的工具箱及自己编写的工具
在利用matlab解决实际问题时我们常常需要一些别人已经编写好的工具,这样省时省力,或在自己的工作当中有些东西经常用到,这时我们编写自己的工具箱。实际上工具箱就是一堆函数,处理特定问题的函数集,我们下载的工具箱就是函数集,我们自己编写的工具箱也是函数集。例如用SNOPT,你可以下载已有的,也可以自己编写,将这些函数放在同一个文件夹下,添加至matlab安装路径下的toolbox中,打开matlab在设置路径中找到该文件夹并添加,这样便可以调用了。 ...原创 2020-07-28 18:50:24 · 1135 阅读 · 0 评论 -
matlab画相图
用matlab自带函数streamslice画极限环[x,y]=meshgrid(linspace(-2,2));streamslice(x,y,y-x.*(x.^2+y.^2-1),-x-y.*(x.^2+y.^2-1));title('Limit Circle')xlabel('x');ylabel('y');原创 2020-06-06 11:33:31 · 12948 阅读 · 5 评论 -
飞机下滑波束导引系统设计
飞机下滑波束导引系统是采用反馈设计(误差控制)思想保证飞机严格按照波束导引线下滑,通过几何关系推导出波束偏差角Γ,偏差距离d、航迹倾角γ等变量之间的转化关系,再配合下滑耦合器、飞控系统(纵向增稳q、θ反馈)等组成。 几何关系示意图 ...原创 2020-05-21 11:44:51 · 475 阅读 · 0 评论 -
controller design
function K=T2place(A,B,P);%A,B are system matrix%P is the desired characteristic polynomial%(P=s^n+a_{n-1}s^{n-1}+\ldots+a_0)%dimension of P is n+1n=length(B);Lc=ctrb(A,B);m=rank(Lc);if (m<...原创 2019-12-22 17:35:42 · 185 阅读 · 0 评论 -
matlab-fsolve解非线性方程组一例
飞行力学纵向配平的计算需要解非线性方程组,解非线性方程组要将方程写成F(X1,X2,...)=。。。。的形式,需要注意的是有可能求得的值为局部最优,这与初始值相关,function F=trim(X)s=75.12 ;rho=0.4135 ;v=70 ;m=11984 ;g=9.8 ;T=X(1);alpha=X(2);delta_e=X(3);F(1)=T*cos(a...原创 2019-12-01 22:00:26 · 6161 阅读 · 0 评论 -
MATLAB_stateflow_3
7.建模仿真的一般流程设计stateflow模型根据设计建立stateflow模型定义相关的事件和数据将stateflow模型嵌入到simulink模型当中进行仿真和分析8.一个小栗子设置a为输入(sin),speed为输出(1,-1),将sin曲线输出为矩齿图...原创 2019-08-24 17:26:31 · 895 阅读 · 0 评论 -
MATLAB_stateflow_4
9.图形函数注:在stateflow有些函数我们要频繁使用,因此可以创建图形函数,直接调用函数即可,上图即是一个图形函数的例子,在function后写函数名,再在缺省状态转移设置处写入函数体,用{}括起来。下图为函数调用的例子10.子状态图中High和Low为On的子状态,创建子状态时将状态框拖入父状态框即可,上图是在仿真时的截图,此时On状态和Low状态都是激活的,可...原创 2019-08-24 17:49:45 · 998 阅读 · 0 评论 -
线性拟合及绘图模板
title('图表的标题'); axis([x1,x2,y1,y2]); %坐标轴范围 xlabel('横坐标名称'); ylabel('纵坐标名称'); X=xlread('实验数据.xlsx','sheet1','U12:U23'); Y=xlread('实验数据.xlsx','sheet1','T12:T23'); %在excel表格中读取数据 a=ployfit(X,Y...原创 2019-04-01 11:19:34 · 737 阅读 · 0 评论 -
matlab读取excel数据
matlab读取excel数据有一个注意的点就是路径,为方便起见可以先将matlab路径设置为要读取的excel文件的路径,这样可以不用去在函数中在写路径,然后用函数来读取,例如 :x=xlsread(‘filename’,‘sheet1’,‘B2:B34')filename是你保存的文件名,要包括文件格式比如:'实验数据处理.xlsx'当然文件名和路径都可以在文件属性里进行复制粘贴,...原创 2019-03-09 10:44:43 · 13273 阅读 · 0 评论 -
matlab绘制不同角度的抛体运动
闲来无事练练matlab绘图theta为角度设置了15、30、45、60、75五个值clear;clc;close;figure('name','抛体运动');v0=10;g=9.8;m=5;theta=15:15:75;th=theta*pi/180;x=linspace(0,11,1000);[TH,x]=meshgrid(th,x);y=x.*tan(TH)-g*x...原创 2019-08-27 18:22:16 · 4529 阅读 · 0 评论 -
matlab三体运动(仿真动画)
闲的蛋疼,学学matlab动画,三体运动还是有点问题(提示line没xdate属性,算了所幸直接注释掉了,就是更新一下位置,前面已经计算了,脑瓜也疼了),不多废话上代码clc;clear;close;figure('name','三体运动');axis equalgrid onhold oncolordef blackview(3)xlabel('x')ylabel('y')...原创 2019-08-28 13:32:07 · 4279 阅读 · 3 评论 -
含阻尼的单摆仿真
闲的蛋疼ing公式的推导,用欧拉法,代码如下,虽有瑕疵但能运行,就这么着吧clc;clear;close;figure ('name','含阻尼的单摆');xlabel('时间t/s');hold ondt=0.0001;%步长T=20;%仿真时长k=1.5;m=8;t=0:dt:T;g=9.8;L=1.5;th0=1.5;v0=0;v=zeros(size(t))...原创 2019-08-28 16:33:17 · 3115 阅读 · 0 评论 -
matlab_stateflow_2
4.状态迁移关系设置:即不同状态之间的连线。状态迁移标记可以含有触发事件、迁移条件、条件动作及迁移动作或它们的任意组合。状态迁移的一般形式是:触发事件[迁移条件关系式]{条件动作}/迁移动作触发事件:表示只要迁移条件为真即可引发状态迁移条件关系式:一般是布尔表达式,即逻辑判断语句条件动作:指条件一旦成立就立即执行的动作迁移动作:指迁移终点确认有效时执行的动作例如:Off...原创 2019-08-24 16:50:00 · 1911 阅读 · 0 评论