Matrix Creation Code Problem
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Fayyaz
el 4 de Jul. de 2014
Hello.
I've a matrix 61312*3.
1st column: from 1 to 81 (Originating Place)
2nd column: from 1 to 81 (Destination place of a vehicle)
3rd column: from 1 to 246 (where the vehicle has surveyed)
There are 61312 observation (no. of rows) at 246 locations.
I need to create a matrix, which shows that from origin (1 to 81) to Destination (1 to 81), which of the location (1 to 246) these vehicle follows. I think the order of the matrix will be 81*81, but there can be more than one value in a cell because of many surveyed location.
With the help of this forum, I've done below coding.
A=combinedfile;
[a,~,ii] = unique(A(:,1));
[b,~,jj] = unique(A(:,2));
out1 = accumarray([ii,jj],A(:,3),[max(ii), max(jj)],@(x){x});
out = [[{nan};num2cell(a(:))],[num2cell(b(:)');out1]];
I get the matrix at the end, but the problems are some cells contains brackets while some contain vaules*1 double (i.e. 440*1 double).
Kindly let me know how should I get rid of these problems. Thanks in advance.
0 comentarios
Respuesta aceptada
Andrei Bobrov
el 6 de Jul. de 2014
Editada: Andrei Bobrov
el 6 de Jul. de 2014
use
[a,~,ii] = unique(A(:,1));
[b,~,jj] = unique(A(:,2));
f = @(x)x(1); % or f = @(x)x(end); or f = @(x)x(randperm(numel(x),1));
out1 = accumarray([ii,jj],A(:,3),[max(ii), max(jj)],f);
out = [nan,b(:)';a(:),out1];
4 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!