Surface Animation from For Loop Help

Hi, I am trying to create a surface that changes over time by using a for loop. I want this to be a plane surface that changes orientation by the values in the arrays I have set for x and y. I cannot seem to get an animation to be made after trying several techniques found online. Here is my current code, thanks in advance.
% Lat for test
x = [0 0.018000 0.0330 0.0410 0.0490 0.0550 0.0640 0.0760 0.0960];
% Long for test
y = [0 0.1520 0.20 0.180 0.1880 0.2270 0.2820 0.3380 0.3880];
g = 1;
Slope = [];
for i = 2:length(x) % Go through data one step at a time until through all data
% Slope must change each time with different x value
Slope(i) = (x(i) - x(i-1))/(y(i) - y(i-1));
end
ynew = Slope.*x;
for i = 1:length(Slope)
figure(1)
surf([x; x], [ynew(1,:); ynew(1,:)], [zeros(size(x)); ones(size(x))]); % Surface attempting to be moved
end

댓글 수: 4

Image Analyst
Image Analyst 2021년 11월 21일
You forgot to atach 'latlong.xlsx'. Also, when you're editing to attach that, highlight your code and click the Code icon to format it as code. I'll check back later.
Luke Malone
Luke Malone 2021년 11월 21일
Hi, latlong.xlsx was just the data I was importing from. I was using the x and y as just a snippet from that data sheet for my testing purposes. I have removed import line to reduce any confusion. Thank you
Image Analyst
Image Analyst 2021년 11월 21일
Luke, try to run the code before posting. We can't run that code. It gets to the time line and then says it doesn't know what T is.
Luke Malone
Luke Malone 2021년 11월 21일
My bad, I didn't know that you could run the code in the browser, I just tested it here now and it seems to work.

댓글을 달려면 로그인하십시오.

답변 (1개)

Image Analyst
Image Analyst 2021년 11월 21일
편집: Image Analyst 2021년 11월 21일

0 개 추천

In your loop, this does not change
[ynew(1,:); ynew(1,:)]
Nothing in that depends on "i" so your surface looks the same at every iteration.
And put in
drawnow;
pause(1);
at the end of your loop so you can see each individual surface.

댓글 수: 2

I tried using,
surf([x(i); x(i)], [ynew(i)(1,:); ynew(i)(1,:)], [zeros(size(x)); ones(size(x))]);
But this didn't work either. Where should I put the (i) dependecy?
Image Analyst
Image Analyst 2021년 11월 22일
Do you actually HAVE a surface? Or just an x and y vector? You might need to make a surface with scatteredInterpolant before you can call surf. See attached demo.

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Animation에 대해 자세히 알아보기

제품

릴리스

R2021a

질문:

2021년 11월 21일

댓글:

2021년 11월 22일

Community Treasure Hunt

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

Start Hunting!

Translated by