how to solve this error index?

1 vue (au cours des 30 derniers jours)
ramya
ramya le 13 Nov 2023
i Have five files i have to plot 50 percentile plot column 3 data with respect to 120:0.1:150.5 in one single plot
Files = dir('*.csv');
Filesc = struct2cell(Files);
NrFiles = size(Filesc,2);
for k = 1:NrFiles
filename = Filesc{1,k};
T{k,:} = readtable(filename);
end
Final_T = cat(1,T{:});
i=reshape(Final_T.r,5,24)
i = 5×24
1.0e+65 * 0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.0001 1.0400 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.6970 1.1500 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.7700 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.8510 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.9410 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 -0.0000 -0.0000
i(:)'
ans = 1×120
0.8142 0.7521 0.6826 0.6062 0.5238 0.4362 -0.3673 -0.2726 -0.1752 -0.0760 0.0239 0.1236 -0.1978 -0.2947 -0.3886 -0.4787 -0.5639 -0.6435 0.6993 0.7671 0.8273 0.8793 0.9224 0.9564 0.7131 0.8761 1.0706 1.3118 1.6262 2.0632
size(i)
ans = 1×2
5 24
x=120:0.2:124.6;
size(x)
ans = 1×2
1 24
per=prctile(i,50) % i hv to take 50 percentile of column 3 data from all the files and plot against 120:0.1:120.5
per = 1×24
1.0e+64 * 0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0004 7.7000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0000 -0.0000
figure
plot(x, per)
grid
xlabel('b')
ylabel('r')
i am not able to plot properly 50 percentile plot for column 3 data which is present in all data files wrt 120:0.1:124.6 in one single plot . i want all the files data in one plot
  2 commentaires
Star Strider
Star Strider le 13 Nov 2023
This looks strikingly similar to how to import file? and I still do not understand the objective.
ramya
ramya le 13 Nov 2023
this time data s changed i have to plot 50 percentile column 3 data of all files wrt 120:0.1:124.6

Connectez-vous pour commenter.

Réponses (1)

Rahul
Rahul le 4 Sep 2024
Hi ramya,,
I understand that you’re trying to plot 50 percentile plots of 3rd column data of five .csv files, onto a single plot.
Given your current code snippet, you can generate 50-percentile plot vectors of column data from each file using ‘prctile’ function and then plot against the desired x-axis limits onto a single figure using ‘hold’ command, as shown below:
% Reshape final table to get column data vectors
Final_T=reshape(Final_T.r,24,5);
% Desired x-axis limits
xRange = 120:0.1:150.5;
percentiles = zeros(length(xRange), 5);
for i = 1:length(NrFiles)
% Extract the third column
column3Data = Final_T(:, i);
% Calculate the 50th percentile for the current dataset
percentiles(:, i) = prctile(column3Data, 50)
end
figure;
for i = 1:size(percentiles, 2)
% Plot individual column percentiles
plot(xRange, percentiles(:, i), 'DisplayName', ['File ', num2str(i)]);
hold on;
end
Here is the resultant figure with five 50-percentile plots, indicated using legends:
For more information regarding custom n-percentile plots of datasets, refer to the documentation link mentioned below:

Catégories

En savoir plus sur Line Plots dans Help Center et File Exchange

Tags

Produits


Version

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by