how to create array for these values i got?

1 次查看(过去 30 天)
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.

回答(3 个)

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

Dishant Arora
Dishant Arora 2014-3-5
编辑:Dishant Arora 2014-3-5
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 个评论
pinak parida
pinak parida 2014-3-5
did you run the code see it will not single value it is has 5 element and for 1000 tmies

请先登录,再进行评论。


Andrei Bobrov
Andrei Bobrov 2014-3-5
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));

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by