how to create array for these values i got?

2 views (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));

Categories

Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!