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

1 次查看(过去 30 天)
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
Matt J 2023-9-12
编辑:Matt J 2023-9-12
Perhaps you intended to have this,
y1=sin(x.^2);
y2=cos(x).^2;

更多回答(1 个)

John D'Errico
John D'Errico 2023-9-12
编辑:John D'Errico 2023-9-12
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.

类别

Help CenterFile Exchange 中查找有关 Get Started with MATLAB 的更多信息

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by