Sorting out an entire table with index
4 views (last 30 days)
Show older comments
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
Answers (0)
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!