① MATLAB 程序運行特別慢,求大神解決!!!!!!!!!
程序中用for循環比矩陣演算法慢得多,特別是循環次數多時,更是慢得出奇。可改為矩陣運算。
② 為什麼我的Matlab程序這么慢
裝WIN7的64位旗艦版的操作系統最適合,玩游戲兼容性能好,會更加流暢,運行程序軟體都非常穩定。
電腦配置符合雙核以上的CPU(只要滿足雙核心即可)和至少4GB或者4GB以上的內存的要求,強烈建議樓主選裝Win7-64位旗艦版的系統!}
電腦系統沒有完全崩潰可以用【【【硬碟安裝系統的方法】】】來裝WIN7的操作系統,無需藉助光碟或者u盤,簡單快速。電腦硬碟安裝系統的方法如下:
1.可以到WIN7旗艦版基地 去下載最新的並且免費激活的WIN7的64位旗艦版操作系統。
2. 將下載的WIN7的64位系統解壓到D盤,千萬不要解壓到C盤。
3. 打開解壓後的文件夾,雙擊「硬碟安裝器」,在打開的窗口中,點擊「安裝」.即可
4.在出現的窗口中,ghost映像文件路徑會自動加入,選擇需要還原到的分區,默認是C盤,點擊「確定」按鈕即可自動安裝。
③ 我編了一個matlab函數,感覺速度很慢,不知道有沒有提升速度的辦法,希望各位大神指點。貢獻小弟所有金幣
1. 這個慢的根本原因是因為你用了matlab符號計算~可以把函數f1和f11里的第一句話syms A s dt;先注釋掉,試試看,這樣速度肯定會變快很多~就是不知道能否滿足你的計算精度要求~
2. 另外你的m和n是不變的系數向量,你沒必要把他們寫在函數裡面,因為這樣每次調用函數都得賦值一遍~你可以把m和n的定義寫在主函數裡面,然後傳遞給函數f1和f11,這樣m和n就都只定義了一遍~應該也是會有所幫助的~
另外如1樓所說的,你不要一個一個元素給向量賦值,可以一起寫~這個形式上會比較好,對速度提升幫助應該不是很大~
總結來講,慢的主要因素是因為第一條,但是如果你一定要用符號計算來達到很高的精度的話那這條就沒辦法改了~第二條是肯定可以改的,而且必然會有一定的幫助(不一定很大,因為主要因素是第一點)~
④ 為什麼matlab模擬模型運行速度慢
這是因為你的模型中使用了中文,把中文去掉吧,就沒有問題了!
⑤ 為什麼我用matlab編得程序運行得那麼慢,就是幾個循環而已。
因為你的句子後面沒加分號,matlab會把結果列印到command window里。這個非常費時間。
test(p,q)=ab(uu,vv)
或者
test((p-1)*16+uu,(q-1)*16+vv)=ab(uu,vv)
後面加上分號再運行就快了。
⑥ matlab循環很慢是因為每次都要編譯循環體寫成函數會不會快
matlab循環慢是因為本身運算速度沒C快 語言本身決定的 循環一般寫成矩陣或者向量的運算會快一些
⑦ MATLAB 編譯後的GUI 打開慢的解決辦法
這個目前沒有好點的解決辦法,一般可以將代碼做編譯,然後在C++下做界面調用M程序。
⑧ matlab 程序運行很慢,怎麼改進
提高matlab程序運行速度,可以用以下方法:
1、更改MATLAB啟動快捷方式
在預設配置下,MATLAB有一個啟動閃屏,去掉它可以節省一定的內存消耗,從而加快啟動。
在MATIJAB啟動快捷方式後添加命令行參數 一nos-plash」即可_去掉閃屏。
預設配置 MATLAB會啟動虛擬機,這會消耗大量內存。添加命令行參數"-nojvm」可禁用JAVA虛擬機。
MATLAB啟動快捷方式命令形如:
"%MATLABROOT%\bin\win32\matlab.exe -nosplash -nojvm」。
經過以上配置,MATLAB啟動和運行速度會得到大幅提升。
注意:禁用JAVA虛擬機後,MATLAB中有些功能,諸如:調試功能、可視化界面設計功能不能使用,但大多數其它功能可正常運行。如果使用的功能需要JAVA虛擬機支持,啟動時將命令行參數 一nojvm 去掉即可。
2、更改MATLAB搜索路徑
MATLAB啟動時會添加搜索路徑。如果安裝了多個工具箱,搜索路徑會很多。過多的搜索路徑除了減緩啟動速度外,還會影響MATLAB執行效率。因為MATLB執行程序時會在這些路徑中尋找M文件。而實際上我們不會為完成某個任務使用所有的工具箱。為提高啟動和運行速度,可以修改pathdef.m文件,將暫時不用的工具箱和其它搜索路徑注釋掉(MATLAB程序以%為注釋標識),從而加快啟動和運行。
⑨ matlab程序運行太慢,請大神幫看看,如何優化加快運算速度!
建議:取消syms,用數值積分方法先計算積分號裡面的東西,而不要用符號積分演算法。將下面這段:
symsz
w1=mt*t0/(4*pi*M*ne*(DL*DT)^0.5);
w2=exp(x.*u/(2*DL));
B=((u*x./(2*DL)).^2+(u*y).^2/(4*DL*DT)).^0.5;
w3=2*besselk(0,B);
w5=int((1/z)*exp(-z-(B.^2/(z*4))),t*u^2/(4*DL),inf);
w4=double(w5);
替換為
w1=mt*t0/(4*pi*M*ne*(DL*DT)^0.5);
w2=exp(x.*u/(2*DL));
B=((u*x./(2*DL)).^2+(u*y).^2/(4*DL*DT)).^0.5;
w3=2*besselk(0,B);
ifun=@(z,B)(1./z).*exp(-z-(B.^2./(z*4)));
w5=integral(@(z)ifun(z,B),t*u^2/(4*DL),inf);
w4=w5;