提高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的程序各个命令的含义,谢谢!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)