~DeD~
Enthusiast
Hi,
ich habe hier einige daten aus einer .dat-datei zu sortieren. diese sind x,y,z-koordinaten aus einer bildaufnahme entstanden. das ganze ist ein rauheitsprofil. x und y spannen quasie die ebene auf und z gibt die höhe in dem jeweiligen punkt.
das problem ist beim export dieser daten werden die bildinfos von der laicasoftware in bildzeilen gespeichert. also 3 spalten aber in der form
0 0 z
0 1 z
0 2 z
0 3 z
. . .
. . .
1 0 z
1 1 z
1 2 z
und so weiter. damit ich das plotten kann brauche ich das ganze aber richtig geordnet. wie stelle ich das an?
sortrows kann ich ja nicht benutzen, da x und y nicht immer gleich sind.
es müssten ja nur die zeilen umsortiert werden.
mir schwebt da sowas vor wie:
for i=1:size(M)
zwert in der matrix von links nach rechts schreiben bis sich der y-wert ändert, danach die nächste zeile beginnen.
.
.
.
end
es sind etwas über 440.000 zeilen zu sortieren.
hier nochmals ein kleiner auszug aus der matrix
634,949 | 0 |-1,86372
635,779 | 0 |-1,97151
636,609 | 0 | -1,97192
0 | 0,830 | 0,0382
0,830 | 0,830 | 0,03466
1,66000 | 0,830 | 0,01768
2,49000 | 0,830 | -0,03613
3,32000 | 0,830 | -0,11543
4,15000 |0,830 | -0,15536
ich hbae halt den ersten y-wert und alle dazugehörigen x-werte der zeile aus dem bild. im edeffekt muss ich ich das so sortieren, dass ich es als 3D plot mir anzeigen kann.
edit:
Problem gelöst, nach etwas überlegungsarbeit ist mir eingefallen, dass ich die ersten beiden spalten ja garnet brauche
y = find(M,1)< 0.1);
for n = 1:size-1
Msort(n,: ) = M(y:y(n+1)-1,3)';
end
figure(1)
mesh(Msort)
ich habe hier einige daten aus einer .dat-datei zu sortieren. diese sind x,y,z-koordinaten aus einer bildaufnahme entstanden. das ganze ist ein rauheitsprofil. x und y spannen quasie die ebene auf und z gibt die höhe in dem jeweiligen punkt.
das problem ist beim export dieser daten werden die bildinfos von der laicasoftware in bildzeilen gespeichert. also 3 spalten aber in der form
0 0 z
0 1 z
0 2 z
0 3 z
. . .
. . .
1 0 z
1 1 z
1 2 z
und so weiter. damit ich das plotten kann brauche ich das ganze aber richtig geordnet. wie stelle ich das an?
sortrows kann ich ja nicht benutzen, da x und y nicht immer gleich sind.
es müssten ja nur die zeilen umsortiert werden.
mir schwebt da sowas vor wie:
for i=1:size(M)
zwert in der matrix von links nach rechts schreiben bis sich der y-wert ändert, danach die nächste zeile beginnen.
.
.
.
end
es sind etwas über 440.000 zeilen zu sortieren.
hier nochmals ein kleiner auszug aus der matrix
634,949 | 0 |-1,86372
635,779 | 0 |-1,97151
636,609 | 0 | -1,97192
0 | 0,830 | 0,0382
0,830 | 0,830 | 0,03466
1,66000 | 0,830 | 0,01768
2,49000 | 0,830 | -0,03613
3,32000 | 0,830 | -0,11543
4,15000 |0,830 | -0,15536
ich hbae halt den ersten y-wert und alle dazugehörigen x-werte der zeile aus dem bild. im edeffekt muss ich ich das so sortieren, dass ich es als 3D plot mir anzeigen kann.
edit:
Problem gelöst, nach etwas überlegungsarbeit ist mir eingefallen, dass ich die ersten beiden spalten ja garnet brauche
y = find(M,1)< 0.1);
for n = 1:size-1
Msort(n,: ) = M(y:y(n+1)-1,3)';
end
figure(1)
mesh(Msort)
Zuletzt bearbeitet: