[問題] 我剛學C++ 想請問這行code我該怎麼改Q_Q

看板C_and_CPP作者 (nofun)時間4年前 (2019/06/18 17:11), 4年前編輯推噓3(3012)
留言15則, 7人參與, 4年前最新討論串1/1
程式碼(Code): % 假設係數(done) % 假設初始條件 C=[1 2 3 4 . . . 6000]; % 其他假設 t=1200;% 計算次數 %% ======== % 建立F矩陣 gg=[0.4975 0.03 0.4725]; hh=eye(1700,6000); aa=conv2(hh,gg,'same'); aa=[aa]; gg=[0.497625 0.03 0.47235]; hh=eye(601,6000); bb=conv2(hh,gg,'same'); bb=[bb]; bb(1,:)=[]; bb=circshift(bb,[0,1699]); gg=[0.497 0.03 0.473]; hh=eye(3701,6000); %要刪除第一行(4400-1087-448=2867) cc=conv2(hh,gg,'same'); cc=[cc]; cc(1,:)=[]; cc=circshift(cc,[0,2299]); F=sparse([aa;bb;cc]); %% ======== % 開始計算 for k=1:t D=F*C% 計算D矩陣 C=D;% 用D矩陣取代C矩陣 end 補充說明:這是matlab程式碼 我剛開始接觸C 也嘗試用過MATLAB內建的matlab-coder去把CODE碼改成C的形式 但剛接觸C 比較不熟 所以有點不太明白的地方 想請各位幫我看一下 如果是你們會怎麼改 才是最正確? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.239.253.42 (香港) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1560849099.A.4C5.html

06/18 17:16, 4年前 , 1F
首先自己手刻一個矩陣跟convolution function,這樣
06/18 17:16, 1F

06/18 17:16, 4年前 , 2F
就差不多完成了
06/18 17:16, 2F

06/18 19:30, 4年前 , 3F
你的問題太廣或是太不明確,你是要學新的語言還是純粹認
06/18 19:30, 3F

06/18 19:31, 4年前 , 4F
為matlab太慢
06/18 19:31, 4F
原因是MATLAB太慢了= = ...我聽人說用C的話 比MATLAB快幾倍、幾十倍~幾千倍都可能

06/18 19:44, 4年前 , 5F
是要C還是C++呀
06/18 19:44, 5F
C跟C++哪個比較快@_@ 想學比較快的那一個~ ※ 編輯: nofun (221.125.111.227 香港), 06/19/2019 01:08:04

06/19 09:39, 4年前 , 6F
要算2D convolution要快的話,還要混著cuda跑才快
06/19 09:39, 6F

06/19 18:39, 4年前 , 7F
C 學比較快,但要算矩陣你還是學 C++ 用 armadillo 吧
06/19 18:39, 7F

06/19 18:52, 4年前 , 8F
c 和 c++ 差很多
06/19 18:52, 8F

06/19 18:52, 4年前 , 9F
c++ 比較多標準的lib 可以用
06/19 18:52, 9F

06/19 18:52, 4年前 , 10F
c 常常要手刻 例如 c 連常用的hasht也沒有
06/19 18:52, 10F

06/19 18:53, 4年前 , 11F
hashtable
06/19 18:53, 11F

06/19 19:29, 4年前 , 12F
用cuda或是OpenCL才能真正改善問題,matlab的實作很多都
06/19 19:29, 12F

06/19 19:29, 4年前 , 13F
是C++,且matlab也有JIT與nVidia GPU加速工具箱,你真的
06/19 19:29, 13F

06/19 19:29, 4年前 , 14F
不必非要C++不可。
06/19 19:29, 14F

06/21 11:38, 4年前 , 15F
matlab的矩陣運算是很快的喔,用C自己刻不見得比他好
06/21 11:38, 15F
文章代碼(AID): #1T2AhBJ5 (C_and_CPP)