| 4 | 1/1 | 返回列表 |
| 查看: 945 | 回復(fù): 3 | ||
GGhigh銀蟲(chóng) (小有名氣)
|
[求助]
basic程序改寫(xiě)成matlab程序!
|
|
最近在改寫(xiě)一個(gè)basic的程序,改寫(xiě)成matlab下運(yùn)行 basic(部分程序): 1280 CO=0;T=0;M=0;V=1;CH=1;AC=0.001; %function evaluation; 1290 BA=C(M+1); 1300 K2=WW*WW-BA*BA; 1310 SS=sign(K2); 1320 if SS=1 and abs(K2)>0.01 then K=sqrt(K2) 1330 if SS=-1 and abs(K2)>0.01 then K=sqrt(-K2) 1340 if SS=0 or abs(K2)<=0.01 1350 X=WW/R ; MM=1; gosub 2220 %這里還未調(diào)試 1360 Y1=J1;Y2=J2;Y3=J3;Y4=J4; 1370 X=K;MM=SS;gosub 2220 1380 Z1=J1;Z2=J2;Z3=J3;Z4=J4; 1390 X=WW;MM=1;gosub 2220 1400 SN=J2*Y3-Y1*J4; 1410 SD=J1*Y3-Y1*J3; 1420 S=WW*SN/SD; 1430 FT=K*Z2/Z1; 1440 M=M+1; 1450 F(M)=K*K2*SN*Z1*Z2/WW-K^2*Z2^2*SD 1460 F(M)=F(M)+N^2*BA^2*Z1^2*SD/(WW*WW); 1470 if V==1 goto 1500 1480 if M>=2 goto 1660 1490 goto 1290 1500 BA=BA+0.02*CH; 1510 if BA>=WW then BA=BA-0.01;CH=-1; 1520 if M=1 GOTO 1300 1530 SS==sign(F(M));ST==sign(F(M-1)); 1540 if SS==ST then F(M-1)=F(M);M=M-1;GOTO 1300 1550 C(1)=BA-0.005*CH; 1560 C(2)=BA-0.01*CH; 1570 V=0;T=T+1;M=0 1580 GOTO 1290 ........ 1660 ...(1660是另外一個(gè)子程序了) 我改寫(xiě)的matlab程序如下: CO=0;T=0;M=0;V=1;CH=1;AC=0.001; %function evaluation; BA=C(M+1); K2=WW*WW-BA*BA; SS=sign(K2); if (SS==1 & abs(K2)>0.01) K=sqrt(K2); end if (SS==-1 & abs(K2)>0.01) K=sqrt(-K2); end if (SS==0 | abs(K2)<=0.01) CO=CO+1; %修正MODIFICATION;(這是2040) if CO>2 disp ('error') return else disp('MODIFICATION') BA=BA-0.002; return end end X=WW/R ; MM=1; bessel; (這里就是子程序2220) Y1=J1;Y2=J2;Y3=J3;Y4=J4; X=K;MM=SS; bessel; Z1=J1;Z2=J2;Z3=J3;Z4=J4; X=WW;MM=1; bessel; SN=J2*Y3-Y1*J4; SD=J1*Y3-Y1*J3; S=WW*SN/SD; FT=K*Z2/Z1; M=M+1; F(M)=K*K2*SN*Z1*Z2/WW-K^2*Z2^2*SD;%有問(wèn)題 F(M)=F(M)+N^2*BA^2*Z1^2*SD/(WW*WW); if V==1 BA=BA+0.02*CH; if BA>=WW BA=BA-0.01;CH=-1; end if M==1 return else SS==sign(F(M));ST==sign(F(M-1)); if SS==ST F(M-1)=F(M); M=M-1; return else C(1)=BA-0.005*CH; C(2)=BA-0.01*CH; V=0;T=T+1;M=0; return end end end 問(wèn)題是:1.在matlab中我如何能夠像basic任意跳轉(zhuǎn),例如basic中的goto 1290,從第三層的嵌套跳到最外層,或者次外層! 2.在basic中的那一句M=M+1;F(M)=........;F(M)=........什么意思?自身疊加?但是貌似沒(méi)有給到上限M值。matlab無(wú)法用while循環(huán)啊? |
銀蟲(chóng) (小有名氣)
至尊木蟲(chóng) (著名寫(xiě)手)
驃騎將軍
|
把gosub改成調(diào)用子函數(shù),所有用到的參數(shù)用函數(shù)定義來(lái)傳遞 goto前面出現(xiàn)的標(biāo)號(hào)改成loop,中間的if...goto 后面的標(biāo)號(hào) 改為循環(huán)終止的break條件 M=M+1;可能M是下標(biāo),自加, matlab有while循環(huán),可以用死循環(huán)while 1 下面這個(gè)錯(cuò)誤 In an assignment A(I) = B, the number of elements in B and I must be the same. 是說(shuō): 用A(I)=B來(lái)將向量/矩陣A的下標(biāo)I表示的元素整體替換為向量/矩陣B時(shí),B的元素個(gè)數(shù)必須與下標(biāo)I的長(zhǎng)度相等. 或者說(shuō)你要替換A中的5個(gè)元素,B也必須有5個(gè)元素,如果個(gè)數(shù)不等就會(huì)報(bào)這個(gè)錯(cuò)誤. |

銀蟲(chóng) (小有名氣)
| 4 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 材料求調(diào)劑 一志愿哈工大總分298分,前三科223分 +3 | dongfang59 2026-03-27 | 3/150 |
|
|---|---|---|---|---|
|
[考研] 張芳銘-中國(guó)農(nóng)業(yè)大學(xué)-環(huán)境工程專碩-298 +3 | 手機(jī)用戶 2026-03-26 | 3/150 |
|
|
[考研] 070300求調(diào)劑306分 +3 | 26要上岸 2026-03-27 | 3/150 |
|
|
[考研] 308求調(diào)劑 +7 | 墨墨漠 2026-03-25 | 7/350 |
|
|
[材料工程] 一志愿C9材料與化工專業(yè)總分300求調(diào)劑 +7 | 曼111 2026-03-24 | 8/400 |
|
|
[考研] 299求調(diào)劑 +6 | 嗯嗯嗯嗯2 2026-03-27 | 6/300 |
|
|
[考研] 298調(diào)劑 +3 | jiyingjie123 2026-03-27 | 3/150 |
|
|
[考研] 0703化學(xué)/290求調(diào)劑/本科經(jīng)歷豐富/工科也可 +7 | 丹青奶蓋 2026-03-26 | 8/400 |
|
|
[碩博家園] 招收生物學(xué)/細(xì)胞生物學(xué)調(diào)劑 +3 | IceGuo 2026-03-26 | 4/200 |
|
|
[考研] 317求調(diào)劑 +7 | 蛋黃咸肉粽 2026-03-26 | 7/350 |
|
|
[考研] 341求調(diào)劑 +7 | 青檸檬1 2026-03-26 | 7/350 |
|
|
[考研] 一志愿211 初試270分 求調(diào)劑 +6 | 谷雨上岸 2026-03-23 | 7/350 |
|
|
[考研] 機(jī)械學(xué)碩310分,數(shù)一英一,一志愿211本科雙非找調(diào)劑信息 +3 | @357 2026-03-25 | 3/150 |
|
|
[考研] 尋找調(diào)劑 +5 | 倔強(qiáng)芒? 2026-03-21 | 8/400 |
|
|
[考研] 334分 一志愿武理-080500 材料求調(diào)劑 +4 | 李李不服輸 2026-03-25 | 4/200 |
|
|
[考研] 一志愿南航材料專317分求調(diào)劑 +5 | 炸呀炸呀炸薯?xiàng)l 2026-03-23 | 5/250 |
|
|
[考研]
|
13659058978 2026-03-24 | 4/200 |
|
|
[考博] 26申博自薦 +3 | whh869393 2026-03-24 | 3/150 |
|
|
[考研] 328求調(diào)劑 +4 | LHHL66 2026-03-23 | 4/200 |
|
|
[考研] 280分求調(diào)劑 一志愿085802 +4 | PUMPT 2026-03-22 | 7/350 |
|