Unrecognized function or variable 'i1'.

So this doesn't work if either of the t = 0:0.2:2 OR t = linspace(0,2,100); are commented or not.
How do I get it to work since the turorial sheet says that this exact code should work if I run:
[a,b,c] = ThreeFunc2(i1,i2,i3)
But it doesnt.
It gives the error:
Unrecognized function or variable 'i1'.

 Akzeptierte Antwort

the cyclist
the cyclist am 15 Okt. 2023

0 Stimmen

The variables i1, i2, and i3 in the function call
[a,b,c] = ThreeFunc2(i1,i2,i3)
or the variables t, f1 and f2 in the function call
[a,b,c] = ThreeFunc2(t,f1,f2)
need to be defined before the function call, not just exist within the function. Those variables are expected as inputs.

4 Kommentare

Dan Giffin
Dan Giffin am 15 Okt. 2023
Bearbeitet: Dan Giffin am 15 Okt. 2023
Hi,
Thanks for the response.
Sadly that doesn't seem to be what the exercise is wanting from me unless I'm misunderstanding you/the exercise.
This doesn't seem to be defining anything but it implies that this code should be enough.
(I've called mine ThreeFunc2 because ThreeFunc was my first attempt that didn't work either)
Dyuman Joshi
Dyuman Joshi am 15 Okt. 2023
You have defined the function correctly, but in order to get the output, you have to provide the inputs and call the function, as The Cyclist has mentioned as well.
Through the command window, define the values t, f1, f2 or i1, i2, i3 with any set of values, and call the function with those variables, as stated in the question as well (the line under the rectangle in the image).
the cyclist
the cyclist am 15 Okt. 2023
Your assignment explicitly states, "the time vector you specified in parameter i1", in other words you need to tell your function what i1 is.
The assignment is admittedly less clear on what to do with i2 and i3 (although it does say you can use a number for i3).
Dan Giffin
Dan Giffin am 15 Okt. 2023
Riiight, that makes a lot of sense.
Thanks for your time,
sorry for being slow.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Sam Chak
Sam Chak am 15 Okt. 2023
I think you can do something like this:
t = 0:0.01:10;
f1 = 1/10;
f2 = 1/5;
% Call the function
ThreeFunc2(t, f1, f2)
% Write the tasks to be carried function
function ThreeFunc2(t, f1, f2)
y1 = sin(2*f1*pi*t);
y2 = cos(2*f2*pi*t);
plot(t, [y1' y2']), grid on
end

Kategorien

Mehr zu Entering Commands finden Sie in Hilfe-Center und File Exchange

Produkte

Version

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by