I don't know where my code is wrong

2 ビュー (過去 30 日間)
서준 장
서준 장 2022 年 5 月 23 日
コメント済み: Torsten 2022 年 5 月 24 日
This is a code that I wrote. I'm new with matlab so I'm not used to all the grammers and stuffs.
It keeps says 'Invalid expression. When calling a function or i....etc' when I try to run the code. I don't really know how to fix it.
theta=linspace(0,pi/2,256);
k=linspace(-10,10,256);
for i=1:256;
for j=1:256;
syms f(x,y)
f(x,y) = piecewise( (x^2+y^2<=1 & y*tan(theta(i))+k(j)>0),y*tan(theta(i))+k(j),0)
g(x,y)=y*f(x,y);
volume=integral2(f,-1,1,-1,1);
xcm=0;
ycm=integral2(g,-1,1,-1,1);
zxm=volume/pi;
height=2*(ycm+zcm*tan(theta(i));
Invalid expression. When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters.
epsilon(length(epsilon)+1)=volume/(pi*height);
distance(length(distance)+1)=(ycm^2+(0.5*height-zcm)^2)^0.5
end
end
plot(epsilon, distance);
  1 件のコメント
Jan
Jan 2022 年 5 月 23 日
Whenever you mention an error in the corum, post a copy of the complete message.
I've edited your code and ran it to show, where the message occurs.

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

回答 (2 件)

Voss
Voss 2022 年 5 月 23 日
This line:
height=2*(ycm+zcm*tan(theta(i));
% 1 2 3 21
is missing a close parenthesis ) somewhere.

Torsten
Torsten 2022 年 5 月 23 日
If
x = r, y = theta and z = z,
the volume of the cylinder below the plane
2x - y + 2z = 2
down to zmin can be calculated as
fun = @(x,y,z) x;
xmin = 0.0;
xmax = 1.0;
ymin = 0.0;
ymax = 2*pi;
zmin = -0.5; % e.g.
zmax = @(x,y) 1 + 0.5*x.*sin(y) - x.*cos(y);
Volume = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax)
  4 件のコメント
서준 장
서준 장 2022 年 5 月 24 日
yes yes this is excacly what I was looking for.
I was kind of confused.
I don't know how to thank you..
Thank you sooo much.. have a nice day, from a student from south korea
Torsten
Torsten 2022 年 5 月 24 日
Greetings back from Germany.

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

カテゴリ

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by