matlab中subs怎么用,【转】MATLAB中subs函数效率低
下午碰到一段MATLAB程序運行緩慢,懷疑是因為使用了subs函數而導致的,寫了段測試代碼:
clc;
clear;
syms x1 x2 x3 x4 y1 y2 y3 y4;
V1=1;V2=2;V3=3;V4=4;
V5=5;V6=6;V7=7;V8=8;
M1=[x1 x2;x3 x4];
M2=[y1 y2;y3 y4];
M=M1+M2;
tic;
for i=1:1:1000
Mv=subs(M,{x1,x2,x3,x4,y1,y2,y3,y4},{V1,V2,V3,V4,V5,V6,V7,V8});
end
t1=toc;
N1=[V1 V2;V3 V4];
N2=[V5 V6;V7 V8];
tic;
for j=1:1:1000
Nv=calcSums(N1,N2);
end
t2=toc;
disp(['采用subs函數的運行時間為',num2str(t1),'秒;']);
disp(['采用自定義求和函數的運行時間為',num2str(t2),'秒;']);
disp(['t1是t2的',num2str(fix(t1/t2)),'倍。']);
其中自定義的求和函數calcSums為:
function result=calcSums(Mat1,Mat2)
result=Mat1+Mat2;
end
引用地址:
注意: 該地址僅在今日23:59:59之前有效
下午碰到一段MATLAB程序運行緩慢,懷疑是因為使用了subs函數而導致的,寫了段測試代碼:
clc;
clear;
syms x1 x2 x3 x4 y1 y2 y3 y4;
V1=1;V2=2;V3=3;V4=4;
V5=5;V6=6;V7=7;V8=8;
M1=[x1 x2;x3 x4];
M2=[y1 y2;y3 y4];
M=M1+M2;
tic;
for i=1:1:1000
Mv=subs(M,{x1,x2,x3,x4,y1,y2,y3,y4},{V1,V2,V3,V4,V5,V6,V7,V8});
end
t1=toc;
N1=[V1 V2;V3 V4];
N2=[V5 V6;V7 V8];
tic;
for j=1:1:1000
Nv=calcSums(N1,N2);
end
t2=toc;
disp(['采用subs函數的運行時間為',num2str(t1),'秒;']);
disp(['采用自定義求和函數的運行時間為',num2str(t2),'秒;']);
disp(['t1是t2的',num2str(fix(t1/t2)),'倍。']);
其中自定義的求和函數calcSums為:
function result=calcSums(Mat1,Mat2)
result=Mat1+Mat2;
end
循環1000次時的運行結果:
采用subs函數的運行時間為29.7846秒;
采用自定義求和函數的運行時間為0.17605秒;
t1是t2的1761倍。
subs函數耗時很大,在對效率有較高要求時不宜采用。
總結
以上是生活随笔為你收集整理的matlab中subs怎么用,【转】MATLAB中subs函数效率低的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL速成
- 下一篇: Oracle 应用篇+Oracle Si