| 8 | 1/1 | 返回列表 |
| 查看: 1440 | 回復(fù): 7 | ||
tao317594856金蟲 (小有名氣)
|
[求助]
關(guān)于Matlab中for循環(huán)的問題,求達(dá)人指點(diǎn),謝謝了 已有1人參與
|
|
c1=[]; c2=[]; N=100000; a1=-pi/2+2*(pi/2)*rand(N,1); a2=-pi/3+2*(pi/3)*rand(N,1); a4=-pi/2+2*(pi/2)*rand(N,1); a5=-pi/3+2*(pi/3)*rand(N,1); b=cos(a1+a4)./10 + cos(a1)./10 + (cos(a1 + a4).*cos(a5))./5 + (cos(a1).*cos(a2))./5; c=sin(a1+a2)./10+sin(a1+a4)./10+sin(a1)./10+sin(a1-a2)./10+(sin(a1+ a4).*cos(a5))./5; d=sin(a2)./5 + sin(a5)./5; c1=[c1 d]; %將Z軸數(shù)值賦值到C1中 c2=[c2 b c]; %將x、y軸數(shù)值賦值到C2中 c11=max(c1); c12=min(c1) %求出Z軸的最大值和最小值 % 定義Z軸分隔間隔的大小 syms derta1 % 定義Z軸分隔的數(shù)目 k1=3; xl=abs(c11-c12); %求解Z坐標(biāo)最大值與最小值的差 derta1=xl/k1; c3=[c1 c2]; c4=sortrows(c3,1); for j=1:k1-1 c5{j}=[]; for i=1:N if c4(i,1)<=(c12+(xl/k1)*(j+1))&&c4(i,1)>(c12+(xl/k1)*(j)) c5{j}=[c5{j};c12+derta1*(j-1) c4(i,2) c4(i,3)]; %%%%%%%%%%% 不同點(diǎn),改其橫坐標(biāo)為分段數(shù)值 end end end 以上是我寫的程序,問題是從第一個(gè)for循環(huán)開始的。我想要在判斷出來(lái)if 條件后,將滿足條件的C4中的行矩陣賦值為[] 空集,這樣就可以大大的減小循環(huán)時(shí)間,可是我沒有寫出來(lái) ,寫成如下的程序后 k3=0 for j=1:k1-1 c5{j}=[]; k2=1 for i=k2:N-k3 if c4(i,1)<=(c12+(xl/k1)*(j+1))&&c4(i,1)>(c12+(xl/k1)*(j)) c5{j}=[c5{j};c12+derta1*(j+0.5) c4(i,2) c4(i,3)] %%%%%%%%%%% 不同點(diǎn),改其橫坐標(biāo)為分段數(shù)值 c4(i, =[]k2=i k3=k3+1 else k2=k2+1 end end end 發(fā)現(xiàn),for 循環(huán)后面跟的循環(huán)體在循環(huán)過(guò)程中是不能變化的,因此沒辦法再每次循環(huán)到符合條件的C4矩陣中的行抽離出來(lái),導(dǎo)致將數(shù)據(jù)分多少層就需要進(jìn)行N(數(shù)據(jù)點(diǎn)數(shù))*K(分層數(shù))次計(jì)算。 不知道有什么別的方法可以實(shí)現(xiàn)每循環(huán)一次,遇到符合條件的變量就抽離出來(lái),在進(jìn)行下一次循環(huán)的時(shí)候就可以掃描N-1個(gè)數(shù)據(jù)了,然后還能繼續(xù)運(yùn)行呢?求大神指教啊, 求大神指教! |
金蟲 (小有名氣)
鐵桿木蟲 (著名寫手)
至尊木蟲 (著名寫手)
金蟲 (小有名氣)
|
首先,我是想內(nèi)循環(huán)的時(shí)候,每循環(huán)判定符合條件1次,c4就減少符合條件的相應(yīng)的一行,而您所說(shuō)的是在最外部每次取K值的時(shí)候,減少響應(yīng)符合上一次k值條件的所有的行。 其次,即使把for i=1:N,改成 for i=1:length(c4),將程序?qū)懗扇缦拢?br /> for j=1:k1-1 c5{j}=[]; for i=1:length(c4) if c4(i,1)<=(c12+(xl/k1)*(j+1))&&c4(i,1)>(c12+(xl/k1)*(j)) c5{j}=[c5{j};c12+derta1*(j+0.5) c4(i,2) c4(i,3)]; %%%%%%%%%%% 不同點(diǎn),改其橫坐標(biāo)為分段數(shù)值 c4(i, =[];end end end 也是無(wú)法執(zhí)行的,因?yàn)閒or 后面的 i=1:length(c4),已經(jīng)確定i是從1執(zhí)行到c4的初始長(zhǎng)度了,在該循環(huán)下c4的長(zhǎng)度是不能改變的 最后,還請(qǐng)您再幫忙思考思考,怎么能在內(nèi)循環(huán)層里,每次遇到滿足條件的就剔除,然后還能在循環(huán)體 里直接執(zhí)行新C4的行數(shù)次數(shù)的循環(huán)呢,是不是有別的循環(huán)循環(huán)函數(shù)之類的可以滿足要求呢,因?yàn)檫@樣可以大量減小計(jì)算量,有很大優(yōu)勢(shì)的。 |
金蟲 (小有名氣)
金蟲 (小有名氣)
至尊木蟲 (著名寫手)
| 8 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 材料學(xué)學(xué)碩080502 337求調(diào)劑-一志愿華中科技大學(xué) +4 | 順順順mr 2026-03-18 | 5/250 |
|
|---|---|---|---|---|
|
[考研] 085601調(diào)劑 358分 +3 | zzzzggh 2026-03-20 | 4/200 |
|
|
[考研] 一志愿西安交通大學(xué)材料工程專業(yè) 282分求調(diào)劑 +7 | 楓橋ZL 2026-03-18 | 9/450 |
|
|
[考研] 307求調(diào)劑 +3 | wyyyqx 2026-03-17 | 3/150 |
|
|
[考研] 化學(xué)求調(diào)劑 +4 | 臨澤境llllll 2026-03-17 | 5/250 |
|
|
[考研] 324分 085600材料化工求調(diào)劑 +4 | llllkkkhh 2026-03-18 | 4/200 |
|
|
[考研] 304求調(diào)劑 +7 | 司空. 2026-03-18 | 7/350 |
|
|
[考研] 317求調(diào)劑 +5 | 申子申申 2026-03-19 | 9/450 |
|
|
[考研] 一志愿蘇州大學(xué)材料求調(diào)劑,總分315(英一) +5 | sbdksD 2026-03-19 | 5/250 |
|
|
[考研] 350求調(diào)劑 +5 | weudhdk 2026-03-19 | 5/250 |
|
|
[考研] 一志愿北京化工大學(xué)0703化學(xué)318分,有科研經(jīng)歷,求調(diào)劑 +4 | 一瓶苯甲酸 2026-03-14 | 4/200 |
|
|
[基金申請(qǐng)]
學(xué)校已經(jīng)提交到NSFC,還能修改嗎?
40+4
|
babangida 2026-03-19 | 8/400 |
|
|
[考研] 08工學(xué)調(diào)劑 +5 | 用戶573181 2026-03-20 | 5/250 |
|
|
[考研] 281求調(diào)劑(0805) +14 | 煙汐憶海 2026-03-16 | 25/1250 |
|
|
[考研] 0856調(diào)劑,是學(xué)校就去 +8 | sllhht 2026-03-19 | 9/450 |
|
|
[考研]
|
不想起名字112 2026-03-19 | 3/150 |
|
|
[考研] 【同濟(jì)軟件】軟件(085405)考研求調(diào)劑 +3 | 2026eternal 2026-03-18 | 3/150 |
|
|
[考研] 0854可跨調(diào)劑,一作一項(xiàng)核心論文五項(xiàng)專利,省、國(guó)級(jí)證書40+數(shù)一英一287 +8 | 小李0854 2026-03-16 | 8/400 |
|
|
[考研] 308求調(diào)劑 +4 | 是Lupa啊 2026-03-16 | 4/200 |
|
|
[考研] 304求調(diào)劑 +3 | 曼殊2266 2026-03-14 | 3/150 |
|