[問題]matlab程式 改寫成c++已回收

看板MATLAB作者 (藍光懸月)時間16年前 (2009/04/08 00:38), 編輯推噓0(008)
留言8則, 3人參與, 最新討論串1/1
不好意思,因為剛學c++,實在是不知道怎寫,所以想麻煩大家. 以下是我的matlab程式: clc clear all close all syms x xi xi1 n=2; sf=[(xi1-x)/(xi1-xi) (x-xi)/(xi1-xi)]; nd=[0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1]; k1=zeros(11); k2=zeros(11); k3=zeros(11); k4=zeros(11); k5=zeros(11); k6=zeros(11); k7=zeros(11); k8=zeros(11); k9=zeros(11); k10=zeros(11); for i=1:n for j=1:n k1(i,j)=subs(int(diff((sf(i)),'x')*diff((sf(j)),'x')+ sf(i).*sf(j),x,nd(1),nd(2)),{xi,xi1},{nd(1),nd(2)}); k2(i+1,j+1)=subs(int(diff((sf(i)),'x')*diff((sf(j)),'x')+ sf(i).*sf(j),x,nd(2),nd(3)),{xi,xi1},{nd(2),nd(3)}); k3(i+2,j+2)=subs(int(diff((sf(i)),'x')*diff((sf(j)),'x')+ sf(i).*sf(j),x,nd(3),nd(4)),{xi,xi1},{nd(3),nd(4)}); k4(i+3,j+3)=subs(int(diff((sf(i)),'x')*diff((sf(j)),'x')+ sf(i).*sf(j),x,nd(4),nd(5)),{xi,xi1},{nd(4),nd(5)}); k5(i+4,j+4)=subs(int(diff((sf(i)),'x')*diff((sf(j)),'x')+ sf(i).*sf(j),x,nd(5),nd(6)),{xi,xi1},{nd(5),nd(6)}); k6(i+5,j+5)=subs(int(diff((sf(i)),'x')*diff((sf(j)),'x')+ sf(i).*sf(j),x,nd(6),nd(7)),{xi,xi1},{nd(6),nd(7)}); k7(i+6,j+6)=subs(int(diff((sf(i)),'x')*diff((sf(j)),'x')+ sf(i).*sf(j),x,nd(7),nd(8)),{xi,xi1},{nd(7),nd(8)}); k8(i+7,j+7)=subs(int(diff((sf(i)),'x')*diff((sf(j)),'x')+ sf(i).*sf(j),x,nd(8),nd(9)),{xi,xi1},{nd(8),nd(9)}); k9(i+8,j+8)=subs(int(diff((sf(i)),'x')*diff((sf(j)),'x')+ sf(i).*sf(j),x,nd(9),nd(10)),{xi,xi1},{nd(9),nd(10)}); k10(i+9,j+9)=subs(int(diff((sf(i)),'x')*diff((sf(j)),'x')+ sf(i).*sf(j),x,nd(10),nd(11)),{xi,xi1},{nd(10),nd(11)}); end end gk=k1+k2+k3+k4+k5+k6+k7+k8+k9+k10 程式最後結果是呈現一個矩陣(gk). 現在想把此.m file改成用c++的形式寫,因為剛接觸C++而已,實在是寫不出來 有試過用mcc來轉,不過好像因為syms的原因,不能轉成功... (matlab版本 : 2007b ; c++版本:visual c++ 6.0) 所以想請大家幫幫忙, 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.214.57

04/08 04:53, , 1F
代數運算....是不是直接上Mathmatica比較快...
04/08 04:53, 1F

04/08 09:49, , 2F
因為是規定要用c++寫,不然我就直接用matlab寫較好了,
04/08 09:49, 2F

04/08 09:50, , 3F
也不用這麼費工 冏...
04/08 09:50, 3F

04/08 13:39, , 4F
你要不要轉去c++版?
04/08 13:39, 4F

04/08 16:19, , 5F
幾個建議..1.不要把MATLAB的思維帶到C++去..兩者程式碼不
04/08 16:19, 5F

04/08 16:20, , 6F
需要類似.. 2.sf這一項用C的話是我我會寫成function
04/08 16:20, 6F

04/08 16:21, , 7F
3.你有用到sf的微分 C的話最好是自己推 然後寫成另一個
04/08 16:21, 7F

04/08 16:21, , 8F
函式
04/08 16:21, 8F
文章代碼(AID): #19su6EXa (MATLAB)
文章代碼(AID): #19su6EXa (MATLAB)