我開始使用MATLAB,但我仍然不知道如何做很多事情。我要創建一個簡單的繪圖功能,讓我們supose是:MATLAB中的基本功能
f(x)=3x+1, defined for example from -5 < x < 5
我需要做的是創建變換自變量(這是一個輸入參數)的功能。例如,如果我的功能被命名爲plotFunction
,如果執行命令plotFunction(2x+3)
最終繪製圖形的功能是:
f(x)=6x+10
我開始使用MATLAB,但我仍然不知道如何做很多事情。我要創建一個簡單的繪圖功能,讓我們supose是:MATLAB中的基本功能
f(x)=3x+1, defined for example from -5 < x < 5
我需要做的是創建變換自變量(這是一個輸入參數)的功能。例如,如果我的功能被命名爲plotFunction
,如果執行命令plotFunction(2x+3)
最終繪製圖形的功能是:
f(x)=6x+10
功能可以由function
環境來定義。你想要一個沒有輸出變量的函數,只是情節顯然。
function [] = plotFunction(f,minRange,maxRange)
range = minRange:0.01:maxRange; % Create plot range, change 0.01 to w/e precision you want to attain
figure; % Create figure
PlotFunc = 3.*f(range)+1; % Your function
plot(range,PlotFunc)
end
有你想使用其他功能爲「基函數」時需要知道兩件事情:我現在已經把它取的0.01
這個步驟可能需要設定較小的(如繪製的時候[ - 1E-4,1e-4])。你可以手工做到這一點,或使用精確開關作爲@efirvida使用。另一件事:我叫3*f(range)+1
爲PlotFunc
。如果您想使用其他功能,請在此處執行操作如果你想使用cos(x)+1/3*sin(pi*x)*e^(-x))
集中的所有x
到f(x)
:PlotFunc = cos(f(x))+1/3.*sin(pi.*f(x))*exp(-f(x)))
現在你必須照顧到調用x
作爲function handle
,像這樣:f = @(x)(2*x+3)
。 @
使它成爲一個函數句柄,它後面的參數定義了定義函數中的變量,這裏是(x)
。第二組括號包含實際功能。然後定義範圍,即minRange = -5
maxRange = 5
和調用函數:
plotFunction(f,minRange,maxRange)
導致:
我不明白'3x + 1','2x + 3'和'6x + 10'之間的關係,你能否澄清你如何得到這些表達式? –
該函數的輸入參數被放置爲原始函數中的x。 f(x)= 3(2x + 3)+ 1 = 6x + 10 – David103