導航:首頁 > 配伺服器 > 雲伺服器運行matlab快么

雲伺服器運行matlab快么

發布時間:2022-12-13 07:12:37

A. 話說matlab有沒有什麼雲計算的伺服器

好像沒有,不過你可以嘗試並行計算,或者將循環次數非常多的地方用c語言編寫然後用matlab調用,可以加速10~100倍~~~
小鳥雲純SSD高性能雲伺服器,50000IOPS性能滿足你的加速

B. 如何在遠程伺服器上運行matlab程序

方法如下:
1、只需要在linux命令行下執行:matlab
2、-nodesktop -nosplash -r 「你的程序的名字」
(前提是matlab所在的目錄在你的PATH變數包含的目錄中)

C. Linux下運行Matlab真的要比在Windows下運行快嗎

如果不需要畫圖,可以在命令行下試試
matlab
-nodisplay
-r
「函數名」
據我自己經驗,如果硬體差不多的話,兩者實際上速度是差不多的.
另外,matlab本身對循環就慢,你可以直接用矩陣運算比較下。

D. 【轉載】讓你的MATLAB運行效率更快一些吧!

轉自 https://www.digquant.com.cn/forum.php?mod=viewthread&tid=258

1、改變演算法,多用矩陣運算(尤其是矩陣乘法),盡量減少for循環;

2、減少for循環中的函數調用;

傳統觀點認為for-loop是影響性能的致命環節,讓我們來對此驗證:

Elapsed time is 0.000239 seconds.

Elapsed time is 0.000050 seconds.

從上面的實驗結果可以得出以下結論:

1、tic/toc語句的時間開銷可以忽略不計
2、for-loop語句本身的時間開銷也非常小,關鍵的影響效率的地方不在於循環本身,而是在於循環的內部。
3、tic/toc不一定要成對出現,一個tic後面可以有多個toc,但需要需要重新計時的時候,要再次執行tic。
4、toc的結果可以用變數接收下來,如:

接下來我們就藉助for循環,分析一下其他的各個影響效率的因素。

內建函數

Mean elapsed time is 0.032866 seconds.

m-函數

Mean elapsed time is 0.185556 seconds.

匿名函數

Mean elapsed time is 0.561228 seconds.

內聯函數

Mean elapsed time is 19.5606 seconds.

從上面的實驗結果可以得出以下結論:
1、內聯函數的調用時間開銷最小,約為for-loop本身的10倍
2、m-函數的調用時間開銷約為內聯函數的6倍,約為for-loop本身的60倍
3、匿名函數的調用時間開銷約為m-函數的3倍,約為for-loop本身的187倍
4、內聯函數的調用時間開銷過大,盡量不要在循環中使用
5、另外MEX-函數的調用時間開銷,理應介於內聯函數和m-函數之間

矩陣索引

Mean elapsed time is 0.007592 seconds.

Mean elapsed time is 0.007954 seconds.

Mean elapsed time is 0.663598 seconds.

Mean elapsed time is 0.273345 seconds.

Mean elapsed time is 0.730042 seconds.

Mean elapsed time is 1.00852 seconds.

Mean elapsed time is 0.009025 seconds.

Mean elapsed time > 20 minutes.

因此,如果不預先分配好內存,將會大大增加模擬時間,拖慢執行效率。

所幸的是,由於這個現象的重要性,Matlab的編輯器能夠發現並提示這個問題,會用紅的波浪線 ~ 標記出來。

向量化:

MATLAB向量化函數
accumarray函數
arrayfun函數
bsxfun函數
cellfun函數
spfun函數

A =

101
206
0
208

subs =
1 1 1
2 1 2
2 3 2
2 1 2
2 3 2

val =
101
102
103
104
105

1、val的元素個數與subs的行數是一致的。

2、 A = accumarray(subs, val) 的實現過程分成2步。

第一步
是把val中的元素,按照subs對應行所給出的下標放到一個新的cell矩陣B中(cell是為了方便解釋,也就是說B矩陣中的每個位置可以放入多個數值),注意,subs的值是B的下標,不是val的。舉例來說,subs第一行[ 1 1 1],意思就是把val中第一個元素(val(1))放入到B(1,1,1)的位置,依次類推,val(2)放入到B(2 1 2),val(3)放入到B(2 3 2),val(4)放入到B(2 1 2),val(5)放入到B(2 3 2)。此時,可以看到B(1,1,1)中有1個數(val(1));B(2 1 2)有2個數(val(2),val(4));B(2 3 2)也有2個數(val(3),val(5))。

第二步
把B中每個單元中的數分別累加,並放入到A的對應位置。

註: accumarray 默認的是把每個單元中的數累加,因為對每個單元中的數的默認處理函數是sum。可以通過 A = accumarray(subs,val,[],[@fun](https://github.com/fun "@fun")) 的調用格式來指定其他的處理函數,比如說mean。對指定的fun函數的要求是,接受列向量輸入,輸出單個的數值型,字元型或邏輯型變數。A的維數與B相同,A中的元素默認為零。A的大小為max(subs(1))×max(subs(2))×max(subs(3))…

很顯然,A的維數與subs的列數相等。

例子:
1000人,身高分布在170 180cm,體重在110 100斤,年齡分布在20~50歲,計算身高體重都相等的人的年齡平均值。結果用矩陣來表示:行數表示身高,列數表示體重,矩陣元素表示年齡的平均值。

arrayfun函數實現的是將指定的函數應用到給定數組在內的所有元素。這樣以前不可避免的循環現在可以向量化了。

生成一個這樣的n×n矩陣

以前,當我們想對一個矩陣A的每一列或每一行與同一個向量a進行某些操作(比較大小、乘除等)時,只能用循環方法或者利用repmat函數將要操作的向量a復製成和A一樣尺寸的矩陣,進而進行操作。從Matlab R2007a開始,有了更有效的方法,那就是bsxfun函數。
有如下矩陣:

向量為b=[1 2 3]T,請找出b在A矩陣列中的位置loc=[1,4]。

方法1:

方法2:

方法3:

方法4:

方法5:

A={『Hello』, 『MATLAB』, 『I love MATLAB』, 『MATLAB is powerful』, 『MATLAB is the language of technical computer』};

cellfun( @length ,A)

ans =
5 6 13 18 44

</pre>

a =

(1,2) 1
(3,20) 2
(20,30) 3
(60,60) 4
(100,80) 5

</pre>

sa =
(1,2) 2
(3,20) 5
(20,30) 10
(60,60) 17
(100,80) 26

常用的預分配內存函數:

閱讀全文

與雲伺服器運行matlab快么相關的資料

熱點內容
老人家用什麼安卓手機好 瀏覽:953
解壓包能不能送女朋友 瀏覽:699
好看發卡網源碼 瀏覽:49
水平集演算法matlab 瀏覽:766
區域網如何用ftp伺服器配置 瀏覽:70
程序員慣性思考模式 瀏覽:439
如何在個稅app上查身份證號 瀏覽:6
電視家app安裝在電視上怎麼安 瀏覽:889
怎麼將pdf格式轉化為圖片格式 瀏覽:637
伺服器拔掉raid卡怎麼裝系統 瀏覽:232
區域對稱加密演算法 瀏覽:245
數字轉漢字php 瀏覽:733
安卓源碼硬體驅動 瀏覽:208
痰證pdf 瀏覽:814
電腦怎麼把word文檔轉pdf 瀏覽:867
程序員那麼可愛有孩子了嗎 瀏覽:480
安卓文字折疊怎麼使用 瀏覽:885
創造一個app如何掙錢 瀏覽:801
php55vc11 瀏覽:642
抖音如何關閉蘋果app充值 瀏覽:332