how to create array for these values i got?

1 view (last 30 days)
m=5;
u=[zeros(1,m-1) rand(1,1000)] ;
c=rand(m);
s=rand(m);
tmp=1;
while (tmp<=(length(u) - (m-1)))
for i = 1:1:m
x(i) = u(tmp + (i-1));
for j=1:1:m
A(i,j)=exp(-0.5*((x(i)-c(i,j))./s(i,j)).^2);
end
f(i)=min(A(i,j))
end
if (tmp==1000)
break;
end
tmp=tmp+1;
end
i got the value of f (1x5) for 1000 times now i want to store these values in a array so that i get (1x5000) and again get the (1x5) from array 1000 times to use elsewhere.

Answers (3)

Chandrasekhar
Chandrasekhar on 5 Mar 2014
change the statement
f(i) = min(A(i,j));
to
f(tmp,i) = min(A(i,j));

Dishant Arora
Dishant Arora on 5 Mar 2014
Edited: Dishant Arora on 5 Mar 2014
f = [];
for
for
%your code
end
f = [f,min(A)]
end
min(A(i,j)) doesn't make any sense as A(i,j) is going to be single element
  1 Comment
pinak parida
pinak parida on 5 Mar 2014
did you run the code see it will not single value it is has 5 element and for 1000 tmies

Sign in to comment.


Andrei Bobrov
Andrei Bobrov on 5 Mar 2014
m = 5;
idx = hankel(1:m,[m, m+1:numel(u)]);
x = reshape(u(idx),1,m,[]);
out = squeeze(min(exp(-bsxfun(@rdivide,bsxfun(@minus,x,c),s).^2/2),[],2));

Community Treasure Hunt

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

Start Hunting!