Matrix Creation Code Problem
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
Andrei Bobrov
il 6 Lug 2014
Modificato: Andrei Bobrov
il 6 Lug 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 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Graphics Performance in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!