導航:首頁 > 配伺服器 > 雲伺服器運行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快么相關的資料

熱點內容
韓國電影失蹤國語在線觀看 瀏覽:39
盜墓電影免費大全 瀏覽:177
內地大尺度電影 瀏覽:296
日歷女孩女二的扮演者李熙3圍 瀏覽:219
韓國電影弟弟幫哥哥找工作條件是嫂子在自己家 瀏覽:818
安卓手機怎麼重新變流暢 瀏覽:419
佑山愛 瀏覽:392
可以我的小米雲伺服器地址 瀏覽:892
血戀圖片 瀏覽:509
胖熊網站 瀏覽:4
電影《喜旺》完整版 瀏覽:364
linuxsource命令 瀏覽:744
基本的cmd命令 瀏覽:242
類似色戒一樣的大尺度 瀏覽:981
主角名叫江楓的小說 瀏覽:467
蛋蛋長脖子上電影 瀏覽:513
基於單片機的電子琴的設計 瀏覽:544
博陽壓縮機公司 瀏覽:63
程序員數正方體 瀏覽:955
男主角叫林楓的都市小說 瀏覽:600