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

1 回表示 (過去 30 日間)
kubel 2023 年 9 月 12 日

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 2023 年 9 月 12 日

Perhaps you intended to have this,
y1=sin(x.^2);
y2=cos(x).^2;
##### 1 件のコメント-1 件の古いコメントを表示-1 件の古いコメントを非表示
kubel 2023 年 9 月 12 日
Oh, thank you so much

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

### その他の回答 (1 件)

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.
##### 1 件のコメント-1 件の古いコメントを表示-1 件の古いコメントを非表示
kubel 2023 年 9 月 12 日

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

### カテゴリ

Help Center および File ExchangeEigenvalue Problems についてさらに検索

### Community Treasure Hunt

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

Start Hunting!