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

3 views (last 30 days)
kubel on 12 Sep 2023
Edited: John D'Errico on 12 Sep 2023
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)')

Matt J on 12 Sep 2023
Edited: Matt J on 12 Sep 2023
Perhaps you intended to have this,
y1=sin(x.^2);
y2=cos(x).^2;
kubel on 12 Sep 2023
Oh, thank you so much

John D'Errico on 12 Sep 2023
Edited: John D'Errico on 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.
kubel on 12 Sep 2023

### Categories

Find more on Get Started with MATLAB in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!