conditional data selection and saving back to file
5 views (last 30 days)
Show older comments
Sudhir Rai on 11 Mar 2021
Commented: Mathieu NOE on 12 Mar 2021
I have data matrix x= row [1 :2:100] and y =row[1:2:100] same number of elements in x and y.
i want to choose data with following conditions,
for x<20 select data at interval of 5 which is [1; 6; 11; 17]
for 20<x<50 select data at interval of 10 which is [20; 30; 40; 50]
for 50<x<100 data selection at interval of 8 ......
same for y and then I have to plot x vs y
how can I easily do it for larger set of data for x and y and save it later in .txt or excel file.
Mathieu NOE on 11 Mar 2021
this is my suggestion
NB the input data I have changed the delta to 1 so that it works for the tasks you asked
y = sin(0.25*x)+0.1*x;
% i want to choose data with following conditions,
% for x<20 select data at interval of 5 which is [1; 6; 11; 17]
% for 20<x<50 select data at interval of 10 which is [20; 30; 40; 50]
% for 50<x<100 data selection at interval of 8 ......
% same for y and then I have to plot x vs y
% how can I easily do it for larger set of data for x and y and save it later in .txt or excel file.
% below vector have length equal to number of cases stated above
% you easily expand the number of conditions without doing manual tweaks
lim_low = [1 20 50]; % define here the lower limits of range
lim_up = [20 50 100]; % define here the uper limits of range
steps = [5 10 8]; % define here the steps
%%% main loop %%
ind = ;
for ci = 1:numel(steps)
ind = [ind (lim_low(ci):steps(ci):lim_up(ci))]; %#ok<*AGROW>
ind = unique(ind); % remove duplicates if any
xx = x(ind);
yy = y(ind);
A = [xx(:) yy(:)];
Mathieu NOE on 12 Mar 2021
I am not sure to understand - how would you define then the intervals and steps ?
maybe I didn't understand in the first place the purpose of that code
More Answers (0)
Find more on Resizing and Reshaping Matrices 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!