Finding Indices of Duplicate Values to create a new array

4 visualizzazioni (ultimi 30 giorni)

Hi all, I have this data and would like to find the unique regions and create a new dataset for the Score for the various unique regions, I have looked at the matlab unique function but I am still unsure. Your help will be greatly appreciated.

Happiness_Score = [7.587,7.561,7.527,7.522,7.427,7.406,7.378,7.364,7.286,7.284,7.278,7.226,7.2,7.187,7.119,6.983,6.946,6.94,6.937,6.901,6.867,6.853,6.81,6.798,6.786,6.75,6.67,6.611,6.575,6.574,6.505,6.485,6.477,6.455,6.411,6.329,6.302,6.298,6.295,6.269,6.168,6.13,6.123,6.003,5.995,5.987,5.984,5.975,5.96,5.948,5.89,5.889,5.878,5.855,5.848,5.833,5.828,5.824,5.813,5.791,5.77,5.759,5.754,5.716,5.709,5.695,5.689,5.605,5.589,5.548,5.477,5.474,5.429,5.399,5.36,5.332,5.286,5.268,5.253,5.212,5.194,5.192,5.192,5.14,5.129,5.124,5.123,5.102,5.098,5.073,5.057,5.013,5.007,4.971,4.959,4.949,4.898,4.885,4.876,4.874,4.867,4.857,4.839,4.8,4.788,4.786,4.739,4.715,4.694,4.686,4.681,4.677,4.642,4.633,4.61,4.571,4.565,4.55,4.518,4.517,4.514,4.512,4.507,4.436,4.419,4.369,4.35,4.332,4.307,4.297,4.292,4.271,4.252,4.218,4.194,4.077,4.033,3.995,3.989,3.956,3.931,3.904,3.896,3.845,3.819,3.781,3.681,3.678,3.667,3.656,3.655,3.587,3.575,3.465,3.34,3.006,2.905,];
Region = categorical({'Western_Europe','Western_Europe','Western_Europe','Western_Europe','North_America','Western_Europe','Western_Europe','Western_Europe','Australia_and_New_Zealand','Australia_and_New_Zealand','Middle_East_and_Northern_Africa','Latin_America_and_Caribbean','Western_Europe','Latin_America_and_Caribbean','North_America','Latin_America_and_Caribbean','Western_Europe','Western_Europe','Western_Europe','Middle_East_and_Northern_Africa','Western_Europe','Middle_East_and_Northern_Africa','Latin_America_and_Caribbean','Southeastern_Asia','Latin_America_and_Caribbean','Western_Europe','Latin_America_and_Caribbean','Middle_East_and_Northern_Africa','Western_Europe','Latin_America_and_Caribbean','Central_and_Eastern_Europe','Latin_America_and_Caribbean','Latin_America_and_Caribbean','Southeastern_Asia','Middle_East_and_Northern_Africa','Western_Europe','Western_Europe','Eastern_Asia','Middle_East_and_Northern_Africa','Latin_America_and_Caribbean','Latin_America_and_Caribbean','Latin_America_and_Caribbean','Latin_America_and_Caribbean','Central_and_Eastern_Europe','Central_and_Eastern_Europe','Eastern_Asia','Eastern_Asia','Latin_America_and_Caribbean','Middle_East_and_Northern_Africa','Western_Europe','Latin_America_and_Caribbean','Central_and_Eastern_Europe','Latin_America_and_Caribbean','Central_and_Eastern_Europe','Central_and_Eastern_Europe','Central_and_Eastern_Europe','Latin_America_and_Caribbean','Latin_America_and_Caribbean','Central_and_Eastern_Europe','Central_and_Eastern_Europe','Southeastern_Asia','Central_and_Eastern_Europe','Middle_East_and_Northern_Africa','Central_and_Eastern_Europe','Latin_America_and_Caribbean','Western_Europe','Western_Europe','Middle_East_and_Northern_Africa','Central_and_Eastern_Europe','Central_and_Eastern_Europe','Sub-Saharan_Africa','Eastern_Asia','Central_and_Eastern_Europe','Southeastern_Asia','Southeastern_Asia','Middle_East_and_Northern_Africa','Central_and_Eastern_Europe','Sub-Saharan_Africa','Southern_Asia','Central_and_Eastern_Europe','Southern_Asia','Middle_East_and_Northern_Africa','Central_and_Eastern_Europe','Eastern_Asia','Sub-Saharan_Africa','Central_and_Eastern_Europe','Central_and_Eastern_Europe','Western_Europe','Central_and_Eastern_Europe','Southeastern_Asia','Sub-Saharan_Africa','Middle_East_and_Northern_Africa','Central_and_Eastern_Europe','Sub-Saharan_Africa','Central_and_Eastern_Europe','Central_and_Eastern_Europe','Sub-Saharan_Africa','Latin_America_and_Caribbean','Southeastern_Asia','Eastern_Asia','Sub-Saharan_Africa','Western_Europe','Middle_East_and_Northern_Africa','Central_and_Eastern_Europe','Latin_America_and_Caribbean','Central_and_Eastern_Europe','Middle_East_and_Northern_Africa','Middle_East_and_Northern_Africa','Southern_Asia','Middle_East_and_Northern_Africa','Central_and_Eastern_Europe','Middle_East_and_Northern_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Southern_Asia','Sub-Saharan_Africa','Latin_America_and_Caribbean','Sub-Saharan_Africa','Southern_Asia','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Central_and_Eastern_Europe','Sub-Saharan_Africa','Southeastern_Asia','Central_and_Eastern_Europe','Sub-Saharan_Africa','Southern_Asia','Sub-Saharan_Africa','Central_and_Eastern_Europe','Middle_East_and_Northern_Africa','Middle_East_and_Northern_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Southeastern_Asia','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Southern_Asia','Sub-Saharan_Africa','Sub-Saharan_Africa','Middle_East_and_Northern_Africa','Sub-Saharan_Africa',});

Risposte (1)

Madheswaran
Madheswaran il 24 Dic 2024
Hi David,
You can use 'unique' function in MATLAB to get the unique categories in the 'Region'. After that, I have used logical indexing to get corrosponding values of 'Happniess_Score' for that particular category. Consider the below code:
% Given data
Happiness_Score = [7.587,7.561,7.527,7.522,7.427,7.406,7.378,7.364,7.286,7.284,7.278,7.226,7.2,7.187,7.119,6.983,6.946,6.94,6.937,6.901,6.867,6.853,6.81,6.798,6.786,6.75,6.67,6.611,6.575,6.574,6.505,6.485,6.477,6.455,6.411,6.329,6.302,6.298,6.295,6.269,6.168,6.13,6.123,6.003,5.995,5.987,5.984,5.975,5.96,5.948,5.89,5.889,5.878,5.855,5.848,5.833,5.828,5.824,5.813,5.791,5.77,5.759,5.754,5.716,5.709,5.695,5.689,5.605,5.589,5.548,5.477,5.474,5.429,5.399,5.36,5.332,5.286,5.268,5.253,5.212,5.194,5.192,5.192,5.14,5.129,5.124,5.123,5.102,5.098,5.073,5.057,5.013,5.007,4.971,4.959,4.949,4.898,4.885,4.876,4.874,4.867,4.857,4.839,4.8,4.788,4.786,4.739,4.715,4.694,4.686,4.681,4.677,4.642,4.633,4.61,4.571,4.565,4.55,4.518,4.517,4.514,4.512,4.507,4.436,4.419,4.369,4.35,4.332,4.307,4.297,4.292,4.271,4.252,4.218,4.194,4.077,4.033,3.995,3.989,3.956,3.931,3.904,3.896,3.845,3.819,3.781,3.681,3.678,3.667,3.656,3.655,3.587,3.575,3.465,3.34,3.006,2.905,];
Region = categorical({'Western_Europe','Western_Europe','Western_Europe','Western_Europe','North_America','Western_Europe','Western_Europe','Western_Europe','Australia_and_New_Zealand','Australia_and_New_Zealand','Middle_East_and_Northern_Africa','Latin_America_and_Caribbean','Western_Europe','Latin_America_and_Caribbean','North_America','Latin_America_and_Caribbean','Western_Europe','Western_Europe','Western_Europe','Middle_East_and_Northern_Africa','Western_Europe','Middle_East_and_Northern_Africa','Latin_America_and_Caribbean','Southeastern_Asia','Latin_America_and_Caribbean','Western_Europe','Latin_America_and_Caribbean','Middle_East_and_Northern_Africa','Western_Europe','Latin_America_and_Caribbean','Central_and_Eastern_Europe','Latin_America_and_Caribbean','Latin_America_and_Caribbean','Southeastern_Asia','Middle_East_and_Northern_Africa','Western_Europe','Western_Europe','Eastern_Asia','Middle_East_and_Northern_Africa','Latin_America_and_Caribbean','Latin_America_and_Caribbean','Latin_America_and_Caribbean','Latin_America_and_Caribbean','Central_and_Eastern_Europe','Central_and_Eastern_Europe','Eastern_Asia','Eastern_Asia','Latin_America_and_Caribbean','Middle_East_and_Northern_Africa','Western_Europe','Latin_America_and_Caribbean','Central_and_Eastern_Europe','Latin_America_and_Caribbean','Central_and_Eastern_Europe','Central_and_Eastern_Europe','Central_and_Eastern_Europe','Latin_America_and_Caribbean','Latin_America_and_Caribbean','Central_and_Eastern_Europe','Central_and_Eastern_Europe','Southeastern_Asia','Central_and_Eastern_Europe','Middle_East_and_Northern_Africa','Central_and_Eastern_Europe','Latin_America_and_Caribbean','Western_Europe','Western_Europe','Middle_East_and_Northern_Africa','Central_and_Eastern_Europe','Central_and_Eastern_Europe','Sub-Saharan_Africa','Eastern_Asia','Central_and_Eastern_Europe','Southeastern_Asia','Southeastern_Asia','Middle_East_and_Northern_Africa','Central_and_Eastern_Europe','Sub-Saharan_Africa','Southern_Asia','Central_and_Eastern_Europe','Southern_Asia','Middle_East_and_Northern_Africa','Central_and_Eastern_Europe','Eastern_Asia','Sub-Saharan_Africa','Central_and_Eastern_Europe','Central_and_Eastern_Europe','Western_Europe','Central_and_Eastern_Europe','Southeastern_Asia','Sub-Saharan_Africa','Middle_East_and_Northern_Africa','Central_and_Eastern_Europe','Sub-Saharan_Africa','Central_and_Eastern_Europe','Central_and_Eastern_Europe','Sub-Saharan_Africa','Latin_America_and_Caribbean','Southeastern_Asia','Eastern_Asia','Sub-Saharan_Africa','Western_Europe','Middle_East_and_Northern_Africa','Central_and_Eastern_Europe','Latin_America_and_Caribbean','Central_and_Eastern_Europe','Middle_East_and_Northern_Africa','Middle_East_and_Northern_Africa','Southern_Asia','Middle_East_and_Northern_Africa','Central_and_Eastern_Europe','Middle_East_and_Northern_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Southern_Asia','Sub-Saharan_Africa','Latin_America_and_Caribbean','Sub-Saharan_Africa','Southern_Asia','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Central_and_Eastern_Europe','Sub-Saharan_Africa','Southeastern_Asia','Central_and_Eastern_Europe','Sub-Saharan_Africa','Southern_Asia','Sub-Saharan_Africa','Central_and_Eastern_Europe','Middle_East_and_Northern_Africa','Middle_East_and_Northern_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Southeastern_Asia','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Sub-Saharan_Africa','Southern_Asia','Sub-Saharan_Africa','Sub-Saharan_Africa','Middle_East_and_Northern_Africa','Sub-Saharan_Africa',});
uniqueRegions = unique(Region);
regionScores = struct();
for i = 1:length(uniqueRegions)
currentRegion = uniqueRegions(i);
% Replace hyphens with underscores in the region name, since struct field name cannot contain hyphen
validRegionName = strrep(char(currentRegion), '-', '_');
indices = Region == currentRegion;
scores = Happiness_Score(indices);
regionScores.(validRegionName) = scores;
end
disp(regionScores);
Australia_and_New_Zealand: [7.2860 7.2840] Central_and_Eastern_Europe: [6.5050 6.0030 5.9950 5.8890 5.8550 5.8480 5.8330 5.8130 5.7910 5.7590 5.7160 5.5890 5.5480 5.4290 5.2860 5.2120 5.1920 ... ] (1x29 double) Eastern_Asia: [6.2980 5.9870 5.9840 5.4740 5.1400 4.8740] Latin_America_and_Caribbean: [7.2260 7.1870 6.9830 6.8100 6.7860 6.6700 6.5740 6.4850 6.4770 6.2690 6.1680 6.1300 6.1230 5.9750 5.8900 5.8780 5.8280 ... ] (1x22 double) Middle_East_and_Northern_Africa: [7.2780 6.9010 6.8530 6.6110 6.4110 6.2950 5.9600 5.7540 5.6050 5.3320 5.1920 5.0130 4.8390 4.7390 4.7150 4.6860 4.6770 4.1940 4.0770 3.0060] North_America: [7.4270 7.1190] Southeastern_Asia: [6.7980 6.4550 5.7700 5.3990 5.3600 5.0730 4.8760 4.3070 3.8190] Southern_Asia: [5.2530 5.1940 4.6940 4.5650 4.5140 4.2710 3.5750] Sub_Saharan_Africa: [5.4770 5.2680 5.1290 5.0570 4.9710 4.8980 4.8670 4.6420 4.6330 4.6100 4.5710 4.5500 4.5170 4.5120 4.5070 4.4360 4.4190 ... ] (1x39 double) Western_Europe: [7.5870 7.5610 7.5270 7.5220 7.4060 7.3780 7.3640 7.2000 6.9460 6.9400 6.9370 6.8670 6.7500 6.5750 6.3290 6.3020 5.9480 ... ] (1x21 double)
Here I have created a struct with each unique region as the field name, and the corrosponding 'Happiness_Score' as the values.
Hope this helps!

Categorie

Scopri di più su Structures in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by