Sorting out an entire table with index
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Dear ALL,
Basically i want to generate 4 figure windows each having 8 graphs on it corresponding to the cases when y=[20 50 80 110 140 170 200 230]
For each case i need to get the index of y pass it to each of the last four columns of the table to get the corressponding values and the x coorinate at which they occure. making them now pairs of( x,y) and then make a plot for each 4 columns. I.e plot (x, mean velocity), (x,stdvelocity), (x,mean_pd), (x,std_pd)
I did that for the first case for y=20 and the resulting grapgh was good see attachment.
Please how do i extend that to the remaining columns? perhaps a for loop and how can i pass the yindex to the the table?
attached is my data,first figure and below is my code :
many thanks in advance
Generating the table of average values
Average_Table = table(xcoordinate,ycoordinate,mean_velocity,std_velocity, mean_pd ,std_pd);
for jj = 20 :30 :230
yindex=find(ycoordinate == jj);
% Deleting the first index to eliminat the offset value at y=20
if jj ==20
yindex(yindex==1)=[];
end
% getting the indices corresponding to each case.
newX=(xcoordinate(yindex));
newY =mean_velocity(yindex);
% table of newx and newY
tableXY =[newX newY];
% soting out the table in descending order
sortedtable =zeros(length(tableXY),2);
sortedtable(:,1)=sort(tableXY(:,1));
sortedX = sortedtable (:,1);
for N =1:length(tableXY)
sortedtable(N,2) =tableXY(find(ismember(tableXY(:,1),sortedtable(N))),2);
% sorted Y coordinates
sortedY = sortedtable(:,2);
end
hold on
plot(sortedX,sortedY,'color',rand(1 ,3),'marker','*','DisplayName',['Y =',num2str(jj)]);
xlabel('x position');
ylabel('mean velocity');
legend show
%
drawnow;
end
2 commentaires
Réponses (0)
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!