How to make a scatter table programmatically?
    2 views (last 30 days)
  
       Show older comments
    
    Ravindu Lokuliyana
 on 20 Dec 2018
  
    
    
    
    
    Commented: Ravindu Lokuliyana
 on 20 Dec 2018
            Hi there,
Hereby attached(.xml file) which is having two different parameter results (x and y).
I need to take those results into scatter table defining different ranges as mentioned in the Table 01.
How can I do that programmatically? 
Your help is much appreciated.
BR,
Ravi
0 Comments
Accepted Answer
  Guillaume
      
      
 on 20 Dec 2018
        There's no x value smaller than 0.5 in your inputs so it's unclear why you have a 10 in your first row of your table. I'm going to assume that your table is incorrect. There are more inconsistencies.
Your bin edges are also badly defined. What happens if x is 0.55, it's outside any of your bins. Same for y = 10.5. Normally you would define the end of bin 1 as x<0.5 and the start of bin2 as x>=0.5 (or x<=0.5 and x>0.5).
xy = xlsread('Scatter table.xlsx', '3:4');
histcounts2(x(1, :), y(2, :), [0 0.5 1.0 1.5 Inf], [0 5 10 15 Inf], 'Normalization', 'probability') * 100
4 Comments
  Guillaume
      
      
 on 20 Dec 2018
				Here is a cheap replacement of histcounts2 with the 'probability' normalisation:
xy = xlsread('Scatter table.xlsx', '3:4');  %or however you want to import the data
xbin = discretize(xy(1, :), [0, 0.5, 1, 1.5, Inf]);  %or whichever bins you want for x
ybin = discretize(xy(2, :), [0, 5, 10, 15, Inf]);  %or whichever bins you want for y
accumarray([xbin(:), ybin(:)], 1) / numel(xbin) * 100
More Answers (0)
See Also
Categories
				Find more on Data Distribution Plots 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!