function pushbutton1_Callback(hObject, eventdata, handles)
f1 = str2double(get(handles.a,'String'));
f2 = str2double(get(handles.b,'String'));
f3= str2double(get(handles.c,'String'));
f4 = str2double(get(handles.d,'String'));
f5 = str2double(get(handles.e,'String'));
f4=0:0.1:10;
set(handles.d, 'enable', 'off')
contents = cellstr(get(handles.popupmenu1, 'String'));
f6 = contents{get(handles.popupmenu1, 'Value')};
x = f1* sin(2*pi*f2+f3);
y = f1 * cos(2*pi*f2+f3);
plot(handles.axes1,x,[0,f4]);
plot(handles.axes1,y,[0,f4]);
I've made this code, but I can't find the graph even if I enter the value to fix it's not working.

 採用された回答

Walter Roberson
Walter Roberson 2020 年 6 月 27 日

0 投票

x = f1* sin(2*pi*f2+f3);
All of those variables are scalars so x will be a scalar
y = f1 * cos(2*pi*f2+f3);
Likewise for y, it will be a scalar
plot(handles.axes1,x,[0,f4]);
Your independent variable x is a scalar. Your dependent variable [0,f4] is a vector. At most you would end up with a number of line segments drawn at a constant x and different y values.
[0,f4] as the dependent parameter does not tell plot() to evaluate a formula over the given rangeb that kind of functionality would be fplot() not plot(). But your independent variable x is not a formula, it is a numeric scalar.
You should be evaluating sin() at an expression that includes the vector f4, and your plot should be using f4 as the independent variable and the result of sin as the dependent variable.
You should be using f6 to decide whether to use sin or cos, not to plot both.

7 件のコメント

JINWOO HONG
JINWOO HONG 2020 年 6 月 27 日
so how can i change that code
could you change it for me? ㅠㅠ
Walter Roberson
Walter Roberson 2020 年 6 月 27 日
look back at your gui. Inside the sin or cos call, you have 2*π*SOMETHING*t . Well, your f4 is your t values.
JINWOO HONG
JINWOO HONG 2020 年 6 月 27 日
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
f1 = str2double(get(handles.a,'String'));
f2 = str2double(get(handles.b,'String'));
f3= str2double(get(handles.c,'String'));
f4 = str2double(get(handles.d,'String'));
f5 = str2double(get(handles.e,'String'));
f4=0:0.1:10;
set(handles.d, 'enable', 'off')
contents = cellstr(get(handles.popupmenu1, 'String'));
f6 = contents{get(handles.popupmenu1, 'Value')};
x = f1* sin(2*pi*f2*f4+f3);
y = f1 * cos(2*pi*f2*f4+f3);
plot(handles.axes1,x,[0,f4]);
plot(handles.axes1,y,[0,f4]);
so this is the right code?
JINWOO HONG
JINWOO HONG 2020 年 6 月 27 日
oh i find answer
so last question
How do I get the function values overlaid on the edit1?
JINWOO HONG
JINWOO HONG 2020 年 6 月 27 日
sir?
Walter Roberson
Walter Roberson 2020 年 6 月 27 日
Use sprintf() or compose() or num2str() to create a character vector that contains the output you want. set the String property of the edit1 to the character vector.
But remember that you are getting out 101 values. Ask yourself whether it is a good idea to be outputing all 101 values to the edit1 .
Image Analyst
Image Analyst 2020 年 6 月 27 日
Isn't this a duplicate of the 5 other posts?

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeData Type Identification についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by