MATLAB 板


LINE

請問一下 matlab與c主要的差別在哪? 用C打得出來的,matlab也可以嗎? 用matlab打的出來的,C也可以嗎? 因為只會C, 所以老師說要用matlab打時想說可不可以用C來做@.@ 感【激不盡~ --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.123.115.123
※ 文章網址: https://webptt.com/m.aspx?n=bbs/MATLAB/M.1429693106.A.D14.html
1F:推 sunev: 兩者都是圖靈完全(誤) 04/22 17:27
2F:推 profyang: 迴圈什麼的matlab都可以寫 只要想要會動用c是OK的 04/22 18:50
3F:→ profyang: 阿看錯 你是本來用matlab要用c 那我就不確定了 04/22 18:51
4F:→ profyang: 有可能你們學的東西需要用到不少matlab內建函式 難道這 04/22 18:51
5F:→ profyang: 些你都要自己在c重寫?還是你找得到別人建好的函式? 04/22 18:52
6F:→ profyang: 以我個人是比較建議你乾脆用matlab 畢竟你都會用c了 真 04/22 18:52
7F:→ profyang: 不行直接在matlab寫迴圈還是會動的 04/22 18:53
8F:推 JamesChen: 你想問哪方面的差距? 04/22 23:17
9F:→ pipidog: 一個是編譯式,一個是直譯式,完全不一樣的邏輯啊! 04/23 12:32
10F:推 linux5566: 能用matlab就用吧 不要折磨自己 04/23 14:07
由於很多題目,教授叫我們用程式打,C或Matlab都可,但是我matlab學得很淺,印象中 我當初用matlab,都是曲線圖之類的,但用C就是很多程式(像是99乘法,猜數字等等的), 想說兩者感覺差很多,但為什麼可以用C或用matlab來做?~ ※ 編輯: puppyulove (140.123.115.123), 04/23/2015 14:39:51
11F:→ aada: 這只是個工具, 用啥都好, 用手算畫也可以~ 04/23 14:51
12F:→ jatj: 速度是最大的考量 matlab優點在豐富的library 不用什麼都 04/23 14:55
13F:→ jatj: 自己coding, 但是執行速度matlab跟c完全不在同一個檔次 04/23 14:56
14F:→ jatj: 用於驗證想法matlab是很好的工具 但是要開發程式最後還是C 04/23 15:24
嗯嗯, 再問個問題 matlab是採用圖形用戶介面對八~ 所以意思是說所有的數據都是由 圖形來呈現嗎? 例如要用matlab做99乘法表要怎麼呈現阿~ 新手發問Q_Q ※ 編輯: puppyulove (140.123.115.123), 04/23/2015 18:33:49
15F:→ s4300026: 先用就對了,matlab好用,C會coding到死 04/23 23:06
16F:推 s4300026: 當老師說用C或matlab時,可以不要選C來折磨自己 04/23 23:09
17F:→ celestialgod: 簡單來說matlab可以即時檢視結果、除錯 04/23 23:32
18F:→ celestialgod: 又有圖形能力、方便的GUI使用以及各種toolbox 04/23 23:33
19F:→ celestialgod: 用C你可能要去找一堆library然後還要編譯安裝 04/23 23:34
20F:→ celestialgod: MATLAB都幫你準備好了 04/23 23:34
21F:→ celestialgod: matlab做99乘法就 for i=1:9,for j=1:9,disp( 04/23 23:35
22F:→ celestialgod: ['i*j=', num2str(i*j)]), end, end 04/23 23:36
23F:→ celestialgod: 更正[num2str(i),'x',num2str(j),'=',num2str(i*j)] 04/23 23:39
24F:→ jatj: 99乘法表 kron(1:9,(1:9)') 04/24 09:25
25F:→ jatj: 用到兩個for就不是matlab的精隨了 基本上跟c一樣了 04/24 09:26
26F:→ jatj: c: for(int i=1;i<=9;i++) for(int j=1;i<=9;j++) 04/24 09:29
27F:→ jatj: cout << i << '*' << j << '=' << i*j << endl; 04/24 09:29
28F:→ celestialgod: 只是要print string 如果只output結果當然那樣就好 04/24 11:58
29F:→ celestialgod: 也可以這樣 [a,b] = meshgrid(1:9, 1:9); 04/24 12:01
30F:→ celestialgod: arrayfun(@(x, y) [num2str(x), '*', num2str(y), 04/24 12:01
31F:→ celestialgod: '=', num2str(x*y)], a, b, 'UniformOutput', false 04/24 12:01
32F:→ celestialgod: ) 04/24 12:01
恩恩,所以說C能做的Matlab大致都能瞜,而且matlab還比c簡單多了就對了~ 那c跟matlab比有甚麼好處呢? ※ 編輯: puppyulove (140.123.115.123), 04/24/2015 12:10:18
33F:→ celestialgod: 快 04/24 12:13
34F:→ celestialgod: 程式易讀性、向量矩陣運算等都是MATLAB勝出比較多 04/24 12:13
35F:→ celestialgod: 向量矩陣運算,我是指撰寫程式上 04/24 12:16
36F:推 linux5566: 你各別寫個矩陣乘法 就知道差別了 04/24 13:36
37F:推 maplefog: 用C和matlab寫個1000x1000的複數反矩陣 就知道差別了 04/24 21:40
38F:→ diggershi: 教授給的題目是哪一類的,如果都屬於數學 畫圖之類 04/24 23:28
39F:→ diggershi: 不用想Mathlab 除非寫出來的code跑個好幾天也跑不完 04/24 23:29
40F:→ diggershi: 再來考慮c,不過 好像Mathlab也有提供轉C的功能... 04/24 23:30
41F:→ warex14: C的好處應該就是「免費」,MATLAB很貴 04/25 11:18
42F:→ warex14: 再來就是MATLAB屬於直譯式語言速度比較慢 04/25 11:18
43F:→ warex14: (不過人家還在寫c的時候MATLAB都應該寫完跑好幾次了) 04/25 11:19
44F:→ celestialgod: matlab轉c的code不見得可以跑,慢的話針對慢的演算 04/25 13:45
45F:→ celestialgod: 法寫c,用matlab call c即可。 04/25 13:45
46F:→ jatj: 樓上warex你大概沒跑過c只要五小時matlab要超過5週的project 04/26 03:31
47F:→ jatj: 這時候你花一個月寫程式也值得 04/26 03:31
48F:→ jatj: 兩個語言的基本用處完全不一樣 這應該是原po要搞懂的 04/26 03:32
49F:推 sunev: 十倍速正常,差到百倍我會覺得那個人不懂matlab…… 04/26 08:31
50F:→ celestialgod: matlab在雙層以上迴圈(疊代)是很可能慢到這種地步 04/26 09:09
51F:→ celestialgod: 無法使用向量運算下是有可能差那麼多的 04/26 09:09
52F:→ celestialgod: 我自己親身例子是小資料五倍,大資料拉到二十倍... 04/26 09:10
53F:→ jatj: 我當時至少也有八年使用的經驗了 我想我沒有到不懂的地步 04/26 10:04
54F:→ jatj: 當你處理的資料是以千萬個迴圈當單位來計算 資料量是GB等級 04/26 10:05
55F:→ jatj: 的時候 或許就可以體會我說的話了 有興趣歡迎私下討論 04/26 10:06
56F:→ jatj: 稍微更正 應該說資料點數是以10^9以上個int來計算的時候 04/26 10:07
57F:→ jatj: 沒記錯我當初跑了10^10^4個迴圈 一個迴圈產生3個int 04/26 10:09
58F:→ jatj: 一定要用迴圈是因為下個點是根據之前資料產生的 當資料大的 04/26 10:13
59F:→ jatj: 時候就要存回硬碟適時再抓出來 每個迴圈也會呼叫其他迴圈 04/26 10:14
60F:→ jatj: 有興趣我可以把原始檔丟上來C和MATLAB都有 是我研究所修課 04/26 10:14
61F:→ jatj: 的期末project 04/26 10:14
62F:→ jatj: 我當時是已有八年Matlab經驗 C不到半年 04/26 10:16
63F:→ celestialgod: 我覺得s大根本沒看過費式數列的效能比較,差到四千 04/26 11:09
64F:→ celestialgod: 多倍 04/26 11:09
65F:→ oversky0: http://bit.ly/1EEbuQK 向量化的費式數列。 04/26 11:36
66F:→ oversky0: 我沒用過,有沒有人有興趣測一下時間? 04/26 11:37
67F:→ celestialgod: 樓上這是一個矩陣向量化去算各自費式數列的值,不是 04/26 12:16
68F:→ celestialgod: 單一個數的費式數列向量化 04/26 12:16
69F:推 sunev: jatj 可以大概講一下演算法嗎?如果沒辦法用空間換時間 04/26 12:43
70F:→ sunev: 那是沒救沒錯。 04/26 12:43
71F:→ sunev: celestialgod的費式數列是什麼意思?不能像oversky0一樣用 04/26 12:45
72F:→ sunev: 公式解嗎? 04/26 12:45
73F:→ celestialgod: oversky0的連結是向量化運算整數矩陣的每一個元素 04/26 13:15
74F:→ celestialgod: 的費式數列,等於一次跑跟矩陣元素一樣多個的費式 04/26 13:15
75F:→ celestialgod: 數列,說真的那樣不如建立一個最大數,再用參照位置 04/26 13:15
76F:→ celestialgod: 找出來對應的費式數列值。 04/26 13:15
77F:→ celestialgod: 最大數的費式數列 04/26 13:16
78F:推 celestialgod: 反正他還是遞迴就是會比c慢上許多。 04/26 13:23
79F:推 sunev: oversky0給的連結是直接用公式,沒有用到遞迴。 04/26 13:28
80F:→ sunev: matlab用這個公式是有可能比c慢,但應該不會慢到十倍以上 04/26 13:28
81F:→ celestialgod: 最後一行還是call itself..... 04/26 13:47
82F:→ celestialgod: 我誤會了.... 抱歉,不過公式解確實會快一點,我例 04/26 13:51
83F:→ celestialgod: 子舉的不夠好 04/26 13:51
84F:→ celestialgod: Computation Time Comparison Between Matlab and C 04/26 13:55
85F:→ celestialgod: ++... ,2012 04/26 13:55
86F:→ celestialgod: 超過四百倍。 04/26 13:55
87F:推 sunev: 你說的四百倍是指遞迴公式嗎? 你算到多大的n啊? 04/26 14:15
88F:→ oversky0: 四千倍大概可以參考這邊 http://julialang.org/ 04/26 14:21
89F:推 sunev: 樓上的連結真的是太慘烈了…… 04/26 14:40
90F:→ celestialgod: julia某些比較實在不適合 04/26 14:57
91F:→ celestialgod: 或許可以嘗試用PSO做比較,兩者在較多Swarms下 04/26 15:01
92F:→ celestialgod: 如果目標函數是難以向量化的函數,會差上幾百倍 04/26 15:02
93F:→ celestialgod: 例如:design的optimal,分類的AUC, accurate rate 04/26 15:02
94F:→ jatj: 給原po應該要了解各個語言的優缺點 適時選擇適當語言 04/27 04:22
95F:推 warex14: 我確實沒遇過那種MATLAB要跑超久的project 04/27 15:45
96F:→ warex14: 我c也沒有很精通 04/27 15:46
97F:→ warex14: 所以我也只是就我曾經遇過的問題來說 04/27 15:47
98F:→ warex14: 還在coding c的時候MATLAB應該已經寫好且跑完了 04/27 15:48
99F:→ warex14: 沒有說一定是這樣,但非特殊情形的時候,我覺得是這樣啦 04/27 15:49
100F:推 math99: 換個角度想 乘機會多學一套軟體也不錯啊 04/28 14:19







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP