I don't know why you're saying it's an invalid expression. Help me

2 Ansichten (letzte 30 Tage)
clear all; close all;
x=linspace(-2*pi,2*pi,100);
y1=sin(x^2);
y2=cos^2(x);
Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters.
figure(1)
plot(x,y1,x,y2)
grid on
title('HW#1 test -2_pi and 2_pi')
xlabel('-2pi < x < 2pi')
ylabel('sin(x^2) and cos(x)^2')
legend('y = sin(x)','y = cos(x)')

Akzeptierte Antwort

Matt J
Matt J am 12 Sep. 2023
Bearbeitet: Matt J am 12 Sep. 2023
Perhaps you intended to have this,
y1=sin(x.^2);
y2=cos(x).^2;

Weitere Antworten (1)

John D'Errico
John D'Errico am 12 Sep. 2023
Bearbeitet: John D'Errico am 12 Sep. 2023
You NEED to learn about the dotted operators, thus .*, ./, and .^ operators.
When x is a vector, for example, this:
x = 1:5
x = 1×5
1 2 3 4 5
So we see it is a row vector. MATLAB has special uses for ^, * and / that apply to linear algebra, vectors and matrices. So if you want only to square the elements of x,
x.^2
ans = 1×5
1 4 9 16 25
The dotted operator tells MATLAB to square EACH element of the result. Similarly, we could do this
x.*x
ans = 1×5
1 4 9 16 25
Again, multiply each pair of elements in turn.
But when you did this:
x^2
Error using ^
Incorrect dimensions for raising a matrix to a power. Check that the matrix is square and the power is a scalar. To operate on each element of the matrix individually, use POWER (.^) for elementwise power.
It generates an error.
I would strongly suggest the MATLAB Onramp tutorials.

Kategorien

Mehr zu Get Started with MATLAB finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by