2013-05-13 59 views
0

這是我的程序,它應該從用戶獲得起始x值,步進值和結束x值的輸入,用戶還輸入他喜歡的y功能,圖表然後應該繪製它,但我不斷收到錯誤,有什麼想法?程序不能正常工作,因爲y中的錯誤

clear all ; % clear memory 
close all ; % close any open figures 
drawnow ; % update screen now 
clc ; % clear screen 


display('** Welcome to Plotting Program **') ; 
display(' '); 

start=input('please enter starting x value:'); 
step=input('please enter ending x value:'); 
stop=input('please enter step value:'); 

y= double(input('please input your equation:')); 

x=double(start:step:stop); 


plot(x,y); 
+1

什麼是t他錯誤?將它添加到您的文章 – meda 2013-05-13 22:03:21

+0

您需要*評估*在'x'中每個數據點提供的表達式。但是爲什麼只要在MATLAB中輸入表達式就可以使用這樣的腳本。 – 2013-05-13 22:04:00

+0

錯誤是使用輸入的錯誤 未定義的函數或變量「x」。 HW9錯誤(第14行) y = input('請輸入您的公式:');我們必須使用腳本才能提交它 – polishusar 2013-05-13 22:15:49

回答

1

您可以使用str2func()字符串輸入轉換成一個函數句柄:

y = input('Input only the RHS of your equation as a function of ''x'' and enclose in '': ') 
y = str2func(['@(x)' y]); 
plot(x,y(x)) 

還要注意的是double(start:step:stop)將無法​​正常工作,因爲你正在轉換字符對應的ASCII碼映射:

double('20') 
ans = 
    50 48 

改爲使用str2double(input('...'))

+0

我也想提出這個建議(@(x)),但是你寫下來的'y'可能不起作用,因爲我認爲輸入不會被解釋爲字符串。所以你可能想補充一下: 'y = input('','s')' 而且我假設他不會用輸入值來包圍輸入值,在這種情況下輸入值已經是數值了整數或雙)。 – fibonatic 2013-05-13 23:42:39