2012-07-31 18 views
1

我想與X和Y繪製,當我更新X的範圍自動更新,矢量大小會發生變化,桑尼需要進行這樣的再次分配:Matlab的情節:對應的y當x改變

>> y = sin(x)

如果我不這樣做,我通常有:

>> plot (x,y) 
Error using plot 
Vectors must be the same lengths. 

所以我想,如果有做的是自動完成的

+0

從上市目前還不清楚你想要做什麼,不應當繪圖命令是'圖(X,Y1,X2,Y2,X3,Y3,X4, Y4)'? – jmetz 2012-07-31 16:03:39

+0

@mutzmatron否,它們共享X的相同範圍 – daisy 2012-07-31 16:27:01

+0

所以你說你改了'x',並且你希望能夠在不設置'y = sin(x)'的情況下調用'plot(x,y)'' ?你唯一的選擇就是使用我在我的答案中建議的功能。事實上,你可以進一步創建'plotsin = @(x)plot(x,sin(x))'。那麼你需要調用的是任何'x'的'plotsin(x)'。 – jmetz 2012-07-31 16:30:01

回答

3

的方式你可以做y功能(手柄),

y = @(x)sin(x) 
plot (x,y(x),x2,y(x2),x3,y(x3),x4,y(x4)) 

當然這樣一個簡單的功能,你可以只堅持sin也即

plot (x,sin(x),x2,sin(x2),x3,sin(x3),x4,sin(x4)) 

你可以結合plot命令也進一步簡化了電話:

plotsin = @(x)plot(sin(x)); 

,這樣你可以調用

plotsin(x); 

任何輸入x

+0

它工作正常,但是'@'的語法是否有一個我可以閱讀的文檔,如果它在matlab的幫助中可用,應該讀什麼? – daisy 2012-08-03 02:20:39

+0

'@'用於創建_function handle_ - 請參閱此處瞭解更多詳細信息http://www.mathworks.com/help/techdoc/matlab_prog/brfpxhw-1.html – jmetz 2012-08-03 17:52:07