matlab編程出問題,求救!!!


>> line2 = struct('posx',{0 40 70 100 650 1550 2450 3650 5250 6050 6800 6800 6800 6800 5300 4500 3300 1500 0
},'posy',{0 -800 -1780 -3580 -4430 -4550 -4430 -4430 -4430 -4000 -3600 -1900 -800 0 1000 1000 1000 1000 0
},'name',{'西直門' '車公庄' '阜成門' '復興門' '長椿街' '宣武門' '和平門' '前門' '崇文門' '北京站' '建國門' '朝陽門' '東四十條' '東直門' '雍和宮' '安定門' '鼓樓大街' '積水潭' }  , 'use',[],'capacity',[], 'x', { 0 0 0 0 0 20 40 60 80 100 100 100 100 100 90 64 36 10 },  'y', {0 -20 -40 -60 -80 -80 -80 -80 -80 -80 -60 -40 -20 0 10 10 10 10 }   );

for i=1:17
scatter(line2(i).x, line2(i).y, 'k')
text(line2(i).x+2,line2(i).y,line2(i).name,'FontSize',8)
hold on;
end;

for i=1:17
line(  [line2(i).x  line2(i+1).x ] ,[line2(i).y line2(i+1).y ] )
end;
line(  [line2(1).x  line2(18).x ], [line2(1).y  line2(18).y ]  )
??? Error using ==> struct
Array dimensions of input 6 must match those of input 2 or be scalar.報錯了,看不懂,不知道怎么修改請哪位高手幫幫忙。

6 个解决方案

#1


引用樓主 a194218com 的回復:
Array dimensions of input 6 must match those of input 2 or be scalar.

第6個參數和第2個參數的數組大小必須一樣。在你的代碼中不一樣。

>>> len("0 40 70 100 650 1550 2450 3650 5250 6050 6800 6800 6800 6800 5300 4500 3300 1500 0".split())
0: 19
>>> len("'西直門' '車公庄' '阜成門' '復興門' '長椿街' '宣武門' '和平門' '前門' '崇文門' '北京站' '建國門' '朝陽門' '東四十條' '東直門' '雍和宮' '安定門' '鼓樓大街' '積水潭'".split())
1: 18
>>> 

#2


具體代碼怎么寫?能幫我寫出來嗎?謝謝。

#3


你把兩個數組改成一樣大就行了,或者數組大的減一個,或者小的加一個,具體怎么做,取決於你的數據的意義。

"0 40 ..."代表的是什么?
"'西直門' '車公庄' '阜成門' ..."代表的是什么?

#4


"0 40 ..."代表的是x坐標,“0 -800 -1780 -3580 -4430 -4550 ”代表的是Y坐標,"'西直門' '車公庄' '阜成門' ..."代表的是地鐵站,我上述語句具體是為了畫出北京地鐵2號線的環線圖,你能不能幫我改改或者編個新程序。謝謝了。

#5


x坐標中開始和結束都是0,地鐵站的列表也應該這樣吧?把地鐵站列表最后再加上'西直門'試試。

#6


沒多大用呀。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com