how to create a matrix when using surf function?
1 view (last 30 days)
Show older comments
I want to solve this problem:
figure(1);
[u,v]=meshgrid(-40:1:40);
D1=sqrt((u-40)^2+v^2);
D2=sqrt((u+40)^2+v^2);
if (D1<=40)&(D2<=40)
F=0;
else
F=1;
end
surf(u,v,F);
shading interp;
however, in this way, matlab tells me ''
错误使用 surf (line 71)
Z 必须为矩阵,不能是标量或向量。''
how can I use surf correctly?
0 Comments
Answers (1)
Voss
on 18 Jan 2022
What you are doing there is making F a scalar, but F needs to be a matrix the same size as u and v, so something like this:
F = ones(size(u));
F(D1 <= 40 & D2 <= 40) = 0;
Here logical indexing is used to set the value of F based on conditions involving D1 and D2.
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!