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

1 回表示 (過去 30 日間)
kubel
kubel 2023 年 9 月 12 日
編集済み: John D'Errico 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
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.
  1 件のコメント
kubel
kubel 2023 年 9 月 12 日
I'll consider it. Thank you for your answer

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

カテゴリ

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

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by