[問題]要算四個限制內的個數應該怎麼寫才好?
小弟剛入門不久請高手們見諒(並非求怎麼寫,而是怎麼寫會寫的比較好)
我先說我要做什麼,然後我怎麼做,請教高手們你們會怎麼做,讓我有一個方向。
小弟有一個名稱為ear的371422*4矩陣
第一直行為x座標 x=ear(:,1);
第二直行為y座標 y=ear(:,2);
第三直行為年分t座標 t=ear(:,3); %出現的數字有1991~2000(年)
第四直行為月份t座標 m=ear(:,4); %出現的數字有1~12(月)
把座標以0.1為區間作為網格,所以我想知道的是框框裡面在某時間點的出現次數。
畢竟要算某3*3框框內的數值,故要用x,y範圍吧?(如100>x & x<101 & y>25 & y<30)
若我想用迴圈一次生成:
「每半年在某x,y範圍內的值,並分別以矩陣(T,N)表示」
(直行為第N個框框,列為第T時間內)
框框位置:
┌─┬─┬─┐
│ 1│4 │7 │
├─┼─┼─┤
│ 2│5 │8 │
├─┼─┼─┤
│ 3│6 │9 │
└─┴─┴─┘
我是有寫過了,方法就和下面所說的一樣,然後再寫成迴圈。
但是這樣要分成每半年、每一季(三個月)、每一個月就有點困難。
【不知道我下列方法方向有沒有錯誤?還是有更好的寫法?】
-------------------分隔線---------------------
因為if不太熟所以我直接用邏輯符號打來乘...
原先我只要求「每年」就可以了,不用每半年,所以我就
先設t0=1991:2000;
我是用length + find函數來算在t=t0年分時,
有多少個在xa~xa+0.1~ya~yb-0.1網格框框內的資料
length(find(x.*(t==t0(1))>xa & x.*(t==t0(1))<x+0.1 & y.*(t==t0(1))>ya & ...
y.*(t==t0(1))<y-0.1→因為我網格框框的排列要和Matlab預設的一樣,所以用減的。
【算條件個數不知道有沒有更好的寫法?】
然後再用for迴圈寫出每年分的1~9格個數。
但這種寫法年份還簡單,但是一碰到要算半年,或一季這種我就不知道該怎麼寫了。
感覺就要用if寫比較好(寫了好幾天都寫不太出來...)。
我是有想到分成上半年、下半年,一次做,在交換矩陣位置就好了(雖然頗麻煩...),
因為最後要plot所以才這樣寫。
【不知道有沒有推薦我一個方向該怎麼寫或想法會比較好。】
以下是我寫迴圈的方式已改成1樓所說的方式
t0=1991:2000;
m0=7; %區分半年位置上半年<7,下半年>=7
A_nzhu=zeros(3);
for m=1:length(t0)
nA_zonehu(m)=sum(x>xa & x<xa+0.5 & y>ya & y<ya+0.5 & t==t0(m) & mon<7);
for k1=1:3
for k2=1:3
A_nzhu(k2,k1)=sum(x>x0+(k1-1)*0.1 & x<x0+0.1*k1 & y>y0-0.1*k2...
& y<y0-(k2-1)*0.1 & t==t0(m) & mon<7)/nA_zonehu(m);
eval(['A_RIhu', num2str(t0(m)), '= A_nzhu']);
end
end
end
A_thu_RI=reshape(cat(3,A_RIhu1991,A_RIhu1992,A_RIhu1993,A_RIhu1994,...
A_RIhu1995,A_RIhu1996,A_RIhu1997,A_RIhu1998,A_RIhu1999,A_RIhu2000),9,[]);
這樣只得到所有年度"上半年"的9格資料
下半年還要再寫一次...
那要得到每月的話...不就更麻煩???
謝謝!
不知道這樣會不會太伸手牌...我想說只是問一個方向@@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.141.150.30
※ 編輯: h10840206 來自: 220.141.150.30 (03/10 10:51)
推
03/10 10:57, , 1F
03/10 10:57, 1F
→
03/11 09:07, , 2F
03/11 09:07, 2F
→
03/11 09:08, , 3F
03/11 09:08, 3F
→
03/11 09:08, , 4F
03/11 09:08, 4F
→
03/11 09:09, , 5F
03/11 09:09, 5F
→
03/11 09:11, , 6F
03/11 09:11, 6F
※ 編輯: h10840206 來自: 220.141.150.30 (03/11 09:24)
推
03/11 23:53, , 7F
03/11 23:53, 7F
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章