[問題] 如何依照條件讓矩陣存值?(以解決)
各位大大好 小弟想請問一下關於矩陣存值的方法
目前我的程式結構大致如下
先決定矩陣的大小
box=[mm,nn,jj,L];
然後進入迴圈
for m=1,L
計算 a
再計算a會落在box的哪裡 x,y,z
然後把a存在box
box(x,y,z,m)=a
end
我的問題是
如果在m=1的迴圈 a的落點 x,y,z 分別是1,1,1
那這個a值會被存在 box(1,1,1,1)
那如果在m=500 的迴圈 a的落點又到 x,y,z=1,1,1
那這個a值就會被存在 box(1,1,1,500)
但這樣好像很佔記憶體 因為要是L很大 這個四維矩陣會很大
我想說有沒有辦法能夠讓 a 的存法變成
第一筆符合x,y,z=1,1,1 的存在box(1,1,1,1)
第二筆符合x,y,z=1,1,1 的存在box(1,1,1,2)
不知道各位大大有沒有甚麼想法可以提供給我參考?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.1.136
※ 文章網址: https://www.ptt.cc/bbs/MATLAB/M.1427635480.A.E4A.html
→
03/29 21:31, , 1F
03/29 21:31, 1F
→
03/29 21:31E, , 2F
03/29 21:31E, 2F
c大想問一下 cell那樣寫的意思是? 我有點對應不到你的寫法
※ 編輯: zx168zx (140.116.192.204), 03/30/2015 01:20:19
→
03/30 01:20, , 3F
03/30 01:20, 3F
→
03/30 01:21, , 4F
03/30 01:21, 4F
c大 我剛剛檢查了一下我的box矩陣 我發現有資料的cell都是 1x2
是代表只有一筆資料落在box矩陣的某一點嗎?
因為我的資料應該是不是只有一筆符合而已
再麻煩c大為小弟解惑一下
※ 編輯: zx168zx (140.116.1.136), 03/30/2015 12:41:53
→
03/30 12:53, , 5F
03/30 12:53, 5F
好的 我在想看看是不是我前面寫錯
另外我想請問一下 我如果想把box裡面的a值加總起來
N=sum(size(box{x,y,z},2))
if N~=0
v=0;
else
v=N/(delta*delta*delta);
end
這樣的寫法有問題嗎?
※ 編輯: zx168zx (140.116.1.136), 03/30/2015 13:44:48
→
03/30 14:12, , 6F
03/30 14:12, 6F
抱歉解釋不清楚
就是我想把box{1~mm,1~nn,1~jj}每一格裡面的a值都加總起來 然後計算v
我剛剛又測試了一下 我放大我mm,nn,jj的間距 但cell依舊是1x2
是他會把值覆蓋過去嗎? 還是我前面計算落點有問題
因為我看我前面的過程想不出哪邊有錯..
這樣c大知道我再問甚麼嗎....?
※ 編輯: zx168zx (140.116.1.136), 03/30/2015 14:29:17
→
03/30 16:01, , 7F
03/30 16:01, 7F
※ 編輯: zx168zx (140.116.1.136), 03/30/2015 16:09:55
→
03/30 16:11, , 8F
03/30 16:11, 8F
→
03/30 16:11, , 9F
03/30 16:11, 9F
→
03/30 16:13, , 10F
03/30 16:13, 10F
→
03/30 16:13, , 11F
03/30 16:13, 11F
感謝C大 我再參考研究看看
※ 編輯: zx168zx (140.116.1.136), 03/30/2015 16:16:31
※ 編輯: zx168zx (140.116.1.136), 03/30/2015 20:33:31