作者zxc1029 (balloon)
看板MATLAB
標題[問題] 矩陣問題
時間Mon Jan 20 20:07:00 2014
各位大大好
因為剛好有修一門課。作業是照一本書的程式碼跑
不過因為我不是很在行這個軟體,所以一直跑不出來
再麻煩高手們幫忙,謝謝
程式碼是
D=B*forecast + C*lag + smooth*rlag +shocks
其中
B=[b1 0;-a2 0]
C=[1-b1 0;0 1-a1]
forecast=[eps;eys]
eps=alfap*epcs+(1-alfap)*epfs
在跑的時候出現
??? Error using ==> *
Inner matrix dimensions must agree.
因為我想是不是矩陣的問題
因為forecast size 是 3998 1
然後Size(B) 是 2 2
所以我自創了一個G,size是 2 1
想讓這個矩陣可以
[2x2] [2x1] [1x3998]
於是 我把式子設成
D= B*G'*forecast + C*G'*lag + smooth*rlag' + shocks'
但還是出現問題
??? Error using ==> *
Inner matrix dimensions must agree.
想問高手們我大概是哪邊出了問題須做更改?
因為實在是找不出答案
感恩 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.47.51.216
1F:→ zxc1029:目前矩陣 (2X3998)+(2X3998)+(2X1999)+(1X3998) 01/20 20:46
2F:→ zxc1029:這樣是可以使用嗎 01/20 20:46
3F:→ zxc1029:不好意思麻煩了 謝謝 01/20 20:50
4F:推 profyang:你一堆符號實在看不太懂@@不過你最後是有2*3999+2*1999? 01/21 02:03
5F:→ profyang:這樣當然不能加吧 01/21 02:03
6F:→ zxc1029:不好意思 因為我不太會懂格式 真的抱歉 01/21 13:19
7F:→ zxc1029:我也是覺得相加問題 請問要創一個什麼使他們可以相加? 01/21 13:21
8F:推 profyang:假設你是A+B好了,A是2*3999, B是2*1999 你這樣要相加是想 01/21 13:46
9F:→ profyang:怎麼加?如果你是想要A的前面2*1999加上B然後剩下部分不變 01/21 13:47
10F:→ profyang:那你可以把B擴大成C像這樣:C=[B,zeros(2,2000)]再去A+C 01/21 13:48
11F:→ profyang:這樣size一樣才可以加 01/21 13:48
12F:推 kurt28:推p大的解說 如果原PO你的矩陣還是像你推文所說那樣 01/21 13:53
13F:→ kurt28:是無法相加的 你的size一定要一樣才能加 01/21 13:54
14F:→ zxc1029:謝謝p大 c我試出來 可是(1X3998)這個試不出 01/21 14:14
15F:→ zxc1029:我設 e=[zeros(1,3998),g] 想把最後的維度變成(2X3998) 01/21 14:15
16F:→ zxc1029:變成1x7996 不曉得這邊是怎麼放...? 01/21 14:18
17F:→ zxc1029:g是我把之前的shocks 自創出來的 他的維度是1x3998 01/21 14:20
18F:推 kurt28:用[zeros(1,3998);g] 01/21 14:27
19F:→ zxc1029:謝謝k大!!!已解出答案 謝謝你們 01/21 17:54