matlab安装2022-08-02

matlab 安装 弹出dvd1装入dvd2继续

装matlab时遇到的一个问题,记录一下解决方法,供各位参考一下。
系统:win10
版本:matlab 2017a
安装问题:弹出dvd1装入dvd2继续。载入dvd2光驱后,依然有这个提示。
原因:dvd1虚拟光驱和dvd2虚拟光驱驱动器号不一致。
操作步骤:    1. 弹出dvd1虚拟光驱, 载入dvd2虚拟光驱
2. 在磁盘管理器中更改驱动器号。操作如图,在(1)处右键,选择(2)处,接下来就是更改驱动器号,驱动器号需要和载入dvd1时的驱动器号一致。
————————————————

221124
redmibook


**您的安装可能需要执行其他配置步骤。**
1。以下产品需要安装[支持的编译器](http://www.mathworks.com/pi_scl_1_R2017a_win64):
Simulink Coder 8.12
Simulink Real-Time 6.6
MATLAB Coder 3.3
2。此安装完成后,应按照从 [www.mathworks.com/distconfig](http://www.mathworks.com/pi_dc_pi_R2017a) 获取的说明中所述继续配置 MATLAB Distributed Computing Server。
3。MATLAB Compiler 6.4 要求安装[支持的编译器](http://www.mathworks.com/pi_scl_4_R2017a_win64)以创建 Excel 加载项
4。MATLAB Compiler SDK 6.3.1 要求安装以下程序:
● [.NET Framework](http://www.mathworks.com/pi_scl_5_R2017a_win64),用于创建与 Excel 集成的 .NET 程序集和可部署的存档
● [支持的编译器](http://www.mathworks.com/pi_scl_5_R2017a_win64),用于创建 COM 组件、C 和 C++ 共享库
● [Java JDK](http://www.mathworks.com/pi_scl_5_R2017a_win64),用于创建 Java 包
```<!--autointro-->

matlab2017激活

230729
今天打算buildsimulink模型提示没有相关许可证

Unable to check out the MATLAB Coder license which is needed to generate code

按照如下方法安装就可以了。


10、软件激活。
①打开破解文件夹,将license_standalone.lic 复制到安装路径下 ……\MATLAB\R2017a\licenses\中。
②将netapi32.dll 复制到安装路径下 MATLAB\R2017a\bin\win64\中。
③语言设置方法 Preference→General→Chinese,Apply后重启。
```<!--autointro-->

如何在MATLAB中获取所有打开的图形的句柄

figHandles = get(0, 'Children')
figHandles = findobj('Type', 'figure')

How do I get the handles of all open figures in MATLAB

我在matlab中有9个打开的图形(由另一个函数生成),我想将它们全部打印到文件中。 有谁知道如何抓住MATLAB中所有打开的图形的句柄?

我知道gcf,但是它似乎并没有满足我的要求。

matlab快速用txt文件作图

testdata = load('text.txt')
plot(testdata) % 1ms per data
plot(0:0.1:(length(testdata)-1)*0.1,testdata) % 0.1ms per data
>> figure(2)
>> plot(0:0.1:(length(testdata)-1)*0.1,testdata)
>> grid on
>> 

function[]=plot_en()
disp('------------------------------------------------------------------');
disp('Plots the Energy balance');
load envar.dat;
load timevar.dat;
EN=envar;T=timevar;
set(0,'DefaultLineLineWidth',1.5)%默认线条粗细
fh1=figure('Name','Energy Balance','NumberTitle','off');%取消figur图编号
subplot(2,1,1)%窗口划分为两行一列,第一个
set(fh1, 'color', 'white'); % figur背景设为白色
plot(T,EN(:,1),'-r',T,EN(:,4),'-.m');%plot数据
set (gca,'fontsize',10,'fontweight','n','fontname','times new romans','linewidth',0.5,'Box', 'off','TickDir','out' );
%               刻度字体大小                                 刻度线条粗细
%               图框闭合成Box-on,off 不闭合                  刻度线向里-in,out向外
%title(' ENERGY BALANCE OF SIMULATION THROUGH LSIM ','FontSize',8);  %标题名
xlabel('time (s)','FontSize',10);   %X轴单位,字体大小
ylabel('Energy (J)','FontSize',10); %Y轴单位,字体大小
h=legend('Potential','Total');      %线型标识名
set(h,'Orientation','horizontal','Color', 'c','Box', 'on','Location','best','fontsize',10,'fontweight','n','fontname','times new romans','linewidth',2.5)
%    对线型标识名legend的设置---蓝绿色C背景box包围打开-on,关闭-off ;位置自动最佳;legend字体大小10;box线框粗细2.5
% plot常用颜色,r 红,g 绿,b 蓝,c 蓝绿,m 紫红,y 黄,k 黑,w 白;color阈值[1 0 0]--代表红色
subplot(2,1,2)%%窗口划分为两行一列,第2个
set(fh1, 'color', 'white'); % sets the color to white
plot(T,EN(:,2),T,EN(:,3));
set (gca,'fontsize',10,'fontweight','n','fontname','times new romans','linewidth',0.5,'Box', 'on','TickDir','in' );
% title(' ENERGY BALANCE OF SIMULATION THROUGH LSIM ','FontSize',8);
xlabel('time (s)','FontSize',10);
ylabel('Energy (J)','FontSize',10);
h=legend('Kinetic','Actuator');
set(h,'Orientation','horizontal','Color', 'none','Box', 'off','Location','best','fontsize',10,'fontweight','n','fontname','times new romans','linewidth',0.5)
% legend位置northoutside,外-北;'north' | 'south' | 'east' | 'west' |'northeast' | 'northwest' | 'southeast' | 'southwest' | 'northoutside' |
%'bestoutside'|'northeast' | 'northwest' | 'southeast' | 'southwest' | 'northeastoutside' |
%'northwestoutside' | 'southeastoutside' | 'southwestoutside'
```<!--autointro-->

matlab 读取figure 文件上的数据

情况一:figure上只有一个axis

1、首先调用h = findobj(gca,’Type’,’line’)命令取得曲线的句柄;

2、然后调用xdata=get(h,’XData’)和ydata=get(h,’YData’)取得曲线的数据。

情况二:figure上有几个axis,即用subplot等画得图像:

clc;clear

x=1:10;

y1=x.^2;

y2=x.^3;

subplot(2,1,1)

plot(x,y1)

subplot(2,1,2)

plot(x,y2)

figure_info=findall(gcf,’type’,’line’);

xc1=get(figure_info(1,:),’xdata’)

xc2=get(figure_info(2,:),’xdata’)

yc1=get(figure_info(1,:),’ydata’)

yc2=get(figure_info(2,:),’ydata’)

这样就可以将所有子图中的曲线信息都找出来。

对比了findall help文件,其中findall中的handle_list可以是一下几种:

gcf 返回当前Figure对象的句柄值

gca返回当前axes对象的句柄值

gco返回当前鼠标单击的句柄值,该对象可以是除root对象外的 任意图形对象,并且Matlab会把当前图形对象的句柄值存放在Figure的CurrentObject属性中。

情况三:figure上是个二维图像

h=findobj(gcf,’type’,’image’);

img=get(h,’CData’);

情况四:figure上是曲面图像

figure_info=findall(gcf,’type’,’surf’);

xx=get(figure_info,’xdata’);

yy=get(figure_info,’ydata’);

z=get(figure_info,’zdata’);

matlab图像设置

原设置

Figure background color设置
如果选择Force white background后用鼠标复制图像也是白色背景而不是透明的。
如果选择Use figure color保存背景和看到的是一致的,类似于截图。
如果选择Transparent background复制出来的就是透明背景。

matlab的哪些路径需要加入includepath

要使用simulink build出来的c,需要把matlab的哪些路径加入includepath

在使用 Simulink 生成的 C 代码时,你需要将一些 MATLAB 相关的路径添加到编译器的 includePath 中,以便编译器能够找到所需的 MATLAB 头文件和库文件。下面是一些常见的 MATLAB 路径,可以添加到 includePath 中:

  1. MATLAB 根目录的 include 文件夹:这个文件夹包含一些标准的 MATLAB 头文件,如 mxArray.h 和 matrix.h。在 Windows 平台上,这个文件夹的路径通常是“C:\Program Files\MATLAB

simulink生成无效变量问题

matlab调用simulink会生成 a b c d四个无效变量,值分别时1 2 3 4

在MATLAB调用Simulink模型时,如果您在MATLAB工作区域中看到了a、b、c、d等无效变量,并且它们的值分别为1、2、3、4,这可能是因为Simulink模型中存在不正确的导出设置。

当您在Simulink模型中导出数据时,Simulink会自动生成对应的MATLAB变量以供MATLAB环境使用。默认情况下,Simulink会自动导出模型中的信号和参数。这些导出的变量的名称通常以模型中的信号和参数名称作为前缀。

要解决此问题,您可以按照以下步骤进行操作:

  1. 打开Simulink模型。

  2. 在模型编辑器中,选择"File"(文件)

simulink生成代码

230821
生成代码可变参数接口:

Simulink生成C代码,标定量(Parameter)与观测量(Signal)

https://blog.csdn.net/qq_36608205/article/details/128473911

https://ww2.mathworks.cn/help/simulink/ug/working-with-data-objects.html#buvhemb-3

https://ww2.mathworks.cn/help/simulink/ug/determine-where-to-store-data-for-simulink-models.html

https://ww2.mathworks.cn/help/simulink/slref/simulink.parameter.html
https://ww2.mathworks.cn/help/rtw/ug/use-parameter-objects-for-code-generation_zh_CN.html

比着下面这个实例练习一下

Simulink代码生成的简单应用

https://www.bilibili.com/video/BV1Wi4y1X73E/?spm_id_from=autoNext&vd_source=831f636d5e58ec682d58e978245cf645

Simulink Tutorial 3:结构体变量

https://zhuanlan.zhihu.com/p/56892003

简聊Simulink功能开发和集成

https://mp.weixin.qq.com/s?__biz=MzU4MzcwODk3Nw==&mid=2247483861&idx=1&sn=ca4b997976475b5e1073dc2e24ff4315&chksm=fda5b98bcad2309d42e74db2efa122e1c3c4cb0d4e081642b964935a6e3b6ca9ecdea7dc33b9&token=1228118232&lang=zh_CN&scene=21#wechat_redirect

你如果用的simulink.corder生成的代码可以在simulink的model workspace内定义bus作为结构体的封装,在使用时在model explor内将对应模型的输入输出数据类型设置为结构体,同时设置export global,之后,在simulink输入输出端口同样设置数据类型为刚才设置的bus类型,即可。

关于包含头文件
https://ww2.mathworks.cn/help/simulink/slref/coder.cinclude_zh_CN.html

使用 C Caller 模块集成 C 代码

https://ww2.mathworks.cn/help/simulink/ug/integrate-ccode-ccaller_zh_CN.html

在生成的代码中创建可调标定参数

https://ww2.mathworks.cn/help/rtw/ug/use-parameter-objects-for-code-generation_zh_CN.html

https://blog.csdn.net/weixin_41695564/article/details/80751543?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-80751543-blog-127982031.235%5Ev38%5Epc_relevant_default_base&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-80751543-blog-127982031.235%5Ev38%5Epc_relevant_default_base&utm_relevant_index=1
使用Simulink从零构建一个控制系统模型【上】
https://www.zhihu.com/tardis/bd/art/633917431?source_id=1001

https://www.zhangshilong.cn/work/102027.html

生成可供外部调用的函数代码

https://ww2.mathworks.cn/help/releases/R2020a/ecoder/ug/generate-code-using-embedded-coder-quick-start.html

导出函数模型概述

https://ww2.mathworks.cn/help/releases/R2020a/simulink/ug/export-function-models.html

Create an Export-Function Model

https://ww2.mathworks.cn/help/releases/R2020a/simulink/ug/create-export-function-model.html

对求解器进行设置,我们把求解器类型设置为定步长求解器,求解器设置为离散求解器,因为我们的计算机控制系统是一个离散的控制系统,并且我们的控制算法一般是通过定时中断和定时调度去完成的。我们把这个算法设置为10ms调度一次,接下来再去做一个代码生成设置,主要是把系统目标文件设置为grt.tlc,这个呢就是使用代码生成工具时使用simulink coder,

Simulink模型生成c代码,有ert.tlc和grt.tlc,这两个工具链的区别

这两个文件都是系统目标文件,使用grt.tlc作为系统目标文件,生成的代码可以用作快速原型,而ert.tlc生成的代码可以用于嵌入式系统。
ert.tlc生成的是更高效的代码。

另外,grt中的g表示general
ert中的e表示embedded
grt一般用来做sil测试,主要考察生成软件的架构以及功能的正确性
ert则是针对嵌入式进行了优化的“嵌入式C语言”,可以这么理解,grt用来验证代码正确性,ert则是针对嵌入式器件对代码进行了相应的优化处理