I don't know where my code is wrong
2 ビュー (過去 30 日間)
古いコメントを表示
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));
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
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
2022 年 5 月 23 日
This line:
height=2*(ycm+zcm*tan(theta(i));
% 1 2 3 21
is missing a close parenthesis ) somewhere.
0 件のコメント
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 件のコメント
参考
カテゴリ
Help Center および File Exchange で Structures についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!