A grouping vector numbers

Hello friends I have one matrix and I need assemble all entries of a matriz in one single vector. This I've done. But I need i need extract repeated values of this and put them in new one. For this I need construct a histogram, and verify which values who not equal to zero and increment a count. So if I find a value not equal to zero I have to increment +1 to value (color) in the histogram position. with intervals100 or 200 to perform small increment in the same "color" (value) on vector
A=[1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0;1 2 3 4 5; 2 3 4 5 5; 6 7 8 9 0]
v = reshape( A.' ,1,numel(A));

Réponses (2)

dpb
dpb le 19 Juin 2014

0 votes

I can't really parse the request but on an off chance it'll help...
BTW, the shortcut for reshape(x,1,[]) is
v=A(:); % this works for all array sizes to generate a column vector
Anyway, as said, taking a guess on the question...
n=histc(v,unique(v));
Biza Ferreira
Biza Ferreira le 19 Juin 2014

0 votes

if true
% code
clc;
clear all;
close all;
im1=imread('imagem60.tif'); im2=imread('imagem70.tif'); imshow(im1);
im1=imresize(imfilter(im1,fspecial('gaussian',7,1.),'same','replicate'),0.5,'bicubic'); im2=imresize(imfilter(im2,fspecial('gaussian',7,1.),'same','replicate'),0.5,'bicubic');
im1=im2double(im1); im2=im2double(im2);
figure,imshow(im1),title('1?imagem original'); figure,imshow(im2);title('2?imagem original'); figure,imhist(im1),title('Histograma de im1'); figure,imhist(im2),title('Histograma de im2');
patchsize=8; gridspacing=1;
Sift1=dense_sift(im1,patchsize,gridspacing); Sift2=dense_sift(im2,patchsize,gridspacing);
% figure,imshow(showColorSIFT(Sift1)); % figure,imshow(showColorSIFT(Sift2));
SIFTflowpara.alpha=2; SIFTflowpara.d=40; SIFTflowpara.gamma=0.005; SIFTflowpara.nlevels=4; SIFTflowpara.wsize=5; SIFTflowpara.topwsize=20; SIFTflowpara.nIterations=60;
tic;[vx,vy,energylist]=SIFTflowc2f(Sift1,Sift2,SIFTflowpara);toc
Im1=im1(patchsize/2:end-patchsize/2+1,patchsize/2:end-patchsize/2+1,:); Im2=im2(patchsize/2:end-patchsize/2+1,patchsize/2:end-patchsize/2+1,:); warpI2=warpImage(Im2,vx,vy); figure,imshow(Im1), title('imagem Im1'); figure,imshow(warpI2),title('warpImage Im2');
% display flow clear flow; flow(:,:,1)=vx; flow(:,:,2)=vy; figure,imshow(flowToColor(flow)),title('diferenca entre as duas imagens');
dstPath='output/';
Amp=sqrt((vx).^2+(vy).^2); figure,imshow(Amp,[]);
direction=atan(vy./vx); figure,imshow(direction,[]);
a=hist(direction,50) end
I just need read this direction variable and verify all values different zero, and when the value repeat i increment 1 more in value scale. exemple: A=[1 1 1 1 1 1 1; 2 2 2 2 2 2 0]; in histogram the value 1 repeat seven time so the amplitude should be 7 for the value 1, for value 2 should be 6, to 0 1 ...

1 commentaire

dpb
dpb le 19 Juin 2014
Did you not try the previous response???? That's precisely what it returns.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Graph and Network Algorithms dans Centre d'aide et File Exchange

Commenté :

dpb
le 19 Juin 2014

Community Treasure Hunt

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

Start Hunting!

Translated by