using a function to answer new questions

1 次查看(过去 30 天)
I have created
function y=Gss(n);
a=3; b=0.2; N(1)=0.2;
for v=2:n+1
N(v)=exp(-a*N(v-1)^2)+b;
end
y=N(v);
How would I use this code to calculate something like
if abs(N(v-1)-N(v))<5
answer=v
else v=v+1 'till you get the desired v'
end
Do I create another script and call Gss(n) or how would I write it in the first function file. I think I would have to use a loop for the second code

采纳的回答

David Hill
David Hill 2019-10-1
function [N,answer] = Gss(n);
N=zeros(1,n+1);
answer=0;
a=3; b=0.2; N(1)=0.2;
for v=2:n+1
N(v)=exp(-a*N(v-1)^2)+b;
if abs(N(v-1)-N(v))<5
answer=v;
end
end
end
Or you could just wait to get array N back and then:
function N = Gss(n);
N=zeros(1,n+1);
a=3; b=0.2; N(1)=0.2;
for v=2:n+1
N(v)=exp(-a*N(v-1)^2)+b;
end
end
%once array N comes back
answer=find(abs(diff(N))<5)+1;%this provides multiple answers if multiple differences are <5
  1 个评论
jacob Mitch
jacob Mitch 2019-10-1
Hi Thanks David this really allows me to understand well, I just wanted to ask am I able to retain the first y=N(v) that I get from inputing n into Gss(n) value say answer1 and then proceed to calculate the second part as the smallest v such that abs(N(v) -N(v-1))<5 say answer2 whilst outputing each value of N(v) in the iteration.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Line Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by