matlab 程序运行很慢,怎么改进

matlab 程序运行很慢,怎么改进,第1张

提高matlab程序运行速度,可以用以下方法:

1、更改MATLAB启动快捷方式

在缺省配置下,MATLAB有一个启动闪屏,去掉它可以节省一定的内存消耗,从而加快启动。

在MATIJAB启动快捷方式后添加命令行参数 一nos-plash”即可_去掉闪屏。

缺省配置 MATLAB会启动虚拟机,这会消耗大量内存。添加命令行参数"-nojvm”可禁用JAVA虚拟机。

MATLAB启动快捷方式命令形如:

"%MATLABROOT%\bin\win32\matlabexe -nosplash -nojvm”。

经过以上配置,MATLAB启动和运行速度会得到大幅提升。

注意:禁用JAVA虚拟机后,MATLAB中有些功能,诸如:调试功能、可视化界面设计功能不能使用,但大多数其它功能可正常运行。如果使用的功能需要JAVA虚拟机支持,启动时将命令行参数 一nojvm 去掉即可。

2、更改MATLAB搜索路径

MATLAB启动时会添加搜索路径。如果安装了多个工具箱,搜索路径会很多。过多的搜索路径除了减缓启动速度外,还会影响MATLAB执行效率。因为MATLB执行程序时会在这些路径中寻找M文件。而实际上我们不会为完成某个任务使用所有的工具箱。为提高启动和运行速度,可以修改pathdef.m文件,将暂时不用的工具箱和其它搜索路径注释掉(MATLAB程序以%为注释标识),从而加快启动和运行。

根据你提供的代码,我看到 xx 和 yy 是在循环内部定义的数组,而 XX 和 YY 是在循环结束后定义的数组,且是通过将 xx 和 yy 转置得到的。因此,在你的代码中,只能得到最后一次循环的结果。如果你想要得到所有循环的结果,需要将 XX 和 YY 改为矩阵形式的变量,并在循环中不断将每次的结果添加到这些矩阵中。

以下是我帮你修改后的代码示例,可以试试:

clc;

close all;

%% parameter

R0=08; a0=2923; a1=-628; a2=4021; Cth=1324e-13; Tth=5953e-6; Tamb=298;

CC=100;

Vm=030032043; T=7015886849;

%% Jacobian

num_loop = length(CC);

A_matrix = zeros(num_loop, 2, 2); % 定义矩阵形式的变量来存储 A 矩阵

eig_values = zeros(num_loop, 2);

for i = 1:num_loop

C = CC(i,1);

A11 = (-1/C10e9)(1-Vm(a1/(2TVm^05)+a2/T))/(R0exp((a0+a1Vm^05+a2Vm)/T));

A12 = (-1/C10e9)(Vm(a0+a1Vm^05+a2Vm))/(T^2(R0exp((a0+a1Vm^05+a2Vm)/T)));

B11 = (2Vm-Vm^2(a1/(2TVm^05)+a2/T))/(Cth(R0exp((a0+a1Vm^05+a2Vm)/T)));

B12 = ((Vm^2(a0+a1Vm^05+a2Vm))/(T^2R0exp((a0+a1Vm^05+a2Vm)/T))-Tth)/Cth;

A = [A11 A12; B11 B12];

A_matrix(i,:,:) = A; % 将每次计算得到的 A 存储到矩阵中

[V, D] = eig(A);

eig_values(i,:) = diag(D);

end

Re1 = real(eig_values(:,1));

Im1 = imag(eig_values(:,1));

Re2 = real(eig_values(:,2));

Im2 = imag(eig_values(:,2));

% 绘制结果的代码

figure;

subplot(2,2,1); scatter(Re1, Im1, 10, 'filled'); xlabel('Real'); ylabel('Imaginary'); title('Eigenvalue 1');

subplot(2,2,2); scatter(Re2, Im2, 10, 'filled'); xlabel('Real'); ylabel('Imaginary'); title('Eigenvalue 2');

subplot(2,2,3); scatter(Re1, Re2, 10, 'filled'); xlabel('Eigenvalue

vm相当于自变量x,y1相当于纵坐标,“-ro”里面的‘-’是用实线连接,‘r’应该是线为红色,‘o’应该是在每个点上是圆圈。后面的y2是另一个变量,“-g”里的‘g’绿色,点为星号

以上就是关于matlab 程序运行很慢,怎么改进全部的内容,包括:matlab 程序运行很慢,怎么改进、matlab中for循环只有一个结果是什么情况,下面是我的程序,可以帮忙看一下吗、哪个高手帮忙解释一下这个matlab的程序各个命令的含义,谢谢!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9321666.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存