| 24小時(shí)熱門(mén)版塊排行榜 |
| 4 | 1/1 | 返回列表 |
| 查看: 1114 | 回復(fù): 3 | |||
lijunjiexm鐵蟲(chóng) (小有名氣)
|
[求助]
求助一簡(jiǎn)單matlab程序的出錯(cuò)問(wèn)題,謝謝
|
|
如下m文件,為什么在命令窗口運(yùn)行 出現(xiàn)錯(cuò)誤提示: >> A=mesh2d2(10) ??? Index exceeds matrix dimensions. Error in ==> mesh2d2 at 8 A = sparse (ii(keep), jj(keep), xx(keep)); >> 請(qǐng)大家指點(diǎn),謝謝! %%%%%%%%%%%%%%%%%%%%%%% function A = mesh2d2 (n) % create an n-by-n 2D mesh for the 2nd difference operator nn = 1:n^2 ; ii = [nn-n ; nn-1 ; nn ; nn+1 ; nn+n] ; jj = repmat (nn, 5, 1) ; xx = repmat ([-1 -14-1-1]',1, n^2) ; keep = find (ii >= 1 & ii <= n^2 & jj >= 1 & jj <= n^2) ; A = sparse (ii(keep), jj(keep), xx(keep)); |
至尊木蟲(chóng) (著名寫(xiě)手)
驃騎將軍
|
??? Index exceeds matrix dimensions. 下標(biāo)越界錯(cuò)誤 在mesh2d2中的第八行之前,第七行之后的分號(hào)去掉 運(yùn)行一次,把keep這個(gè)下標(biāo)打印出來(lái)看,是不是沒(méi)有find到,keep是0啊 導(dǎo)致在做稀疏矩陣A的時(shí)候ii(keep)訪問(wèn)矩陣的0號(hào)元素(不存在),因?yàn)閙atlab的矩陣下標(biāo)從1開(kāi)始的 |

|
把最后一行“A = sparse (ii(keep), jj(keep), xx(keep)); ”轉(zhuǎn)換成 A = sparse (ii(keep)); A = sparse (jj(keep)); A = sparse (xx(keep)); 再試試看。sparse函數(shù)轉(zhuǎn)化只能一個(gè)個(gè)來(lái)吧。 另外,你xx = repmat ([-1 -14-1-1]',1, n^2) ;是想生成2*100個(gè)元素的矩陣,不過(guò)按照你的程序應(yīng)該生成5*100矩陣吧。猜測(cè)而已。[-1 -14-1-1]應(yīng)為[-1 -1 4 -1 -1]吧?? |

|
function A = mesh2d2 (n) % create an n-by-n 2D mesh for the 2nd difference operator nn = 1:n^2 ; ii = [nn-n ; nn-1 ; nn ; nn+1 ; nn+n] ; jj = repmat (nn, 5, 1) ; xx = repmat ([-1 -14-1-1]',1, n^2) ; [keep1,keep2]= find (ii >= 1 & ii <= n^2 & jj >= 1 & jj <= n^2) ; keep=[keep1 keep2]; % A = sparse (ii(keep), jj(keep), xx(keep)); A1 = sparse (ii(keep)); A2 = sparse (jj(keep)); A3 = sparse (xx(keep)); |

| 4 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|