fruits_USDA = ...
{09003, 'APPLES,RAW,WITH SKIN', 52, 0.26, 13.81, 2.4, 10.39, ...
109, '1 cup, slices';
09038, 'AVOCADOS,RAW,CALIFORNIA',167, 1.96, 8.64, 6.8, 0.3, ...
136, '1 fruit, without skin and seed';
09050, 'BLUEBERRIES,RAW', 57, 0.74, 14.49, 2.4, 9.96,...
68,'50 berries';
09070, 'CHERRIES,SWEET,RAW',63, 1.06, 16.01, 2.1, 12.82, ...
138, '1 cup, with pits yields';
09148,'KIWIFRUIT,GRN,RAW',61, 1.14, 14.66, 3, 8.99, ...
69, '1 fruit, (2" dia)';
09176, 'MANGOS,RAW', 60, 0.82, 14.98, 1.6, 13.66, ...
336, '1 fruit, without refuse';
09191, 'NECTARINES,RAW', 44, 1.06, 10.55, 1.7, 7.89, ...
129, '1 small, (2-1/3" dia)';
09316, 'STRAWBERRIES,RAW',32, 0.67, 7.68, 2, 4.89, ...
152, '1 cup, halves'};
fruits_USDA = struct('number', 09003,'name', 'APPLES,RAW,WITH SKIN', ...
'calories', 52, 'protein', 0.26, ...
'carbohydrates', 13.81, 'fiber', 2.4, 'sugar', 10.39, ...
'scaling', 109, 'serving', '1 cup, slices');
fruits_USDA(2) = struct('number', 09038,'name', 'AVOCADOS,RAW,CALIFORNIA', ...
'calories', 167, 'protein', 1.96, ...
'carbohydrates', 8.64, 'fiber', 6.8, 'sugar', 0.3, ...
'scaling', 136, 'serving', '1 fruit, without skin and seed');
fruits_USDA = struct(...
'number', {9003, 9038, 9050, 9070, 9148, 9176, 9191, 9316},...
'name', {'APPLES,RAW,WITH SKIN','AVOCADOS,RAW,CALIFORNIA',...
'BLUEBERRIES,RAW','CHERRIES,SWEET,RAW','KIWIFRUIT,GRN,RAW',...
'MANGOS,RAW','NECTARINES,RAW','STRAWBERRIES,RAW'},...
'calories', {52 167 57 63 61 60 44 32},...
'protein', {0.2600 1.9600 0.7400 1.0600 1.1400 0.8200 1.0600 0.6700},...
'carbs', {13.8100 8.6400 14.4900 16.0100 14.6600 14.9800 10.5500 7.6800},...
'fiber', {2.4000 6.8000 2.4000 2.1000 3.0000 1.6000 1.7000 2.0000},...
'sugar', {10.3900 0.3000 9.9600 12.8200 8.9900 13.6600 7.8900 4.8900},...
'scaling', {109 136 68 138 69 336 129 152},...
'serving', {'1 cup, slices','1 fruit, without skin and seed',...
'50 berries','1 cup, with pits yields','1 fruit, (2" dia)',...
'1 fruit, without refuse','1 small, (2-1/3" dia)',...
'1 cup, halves'});
fruits_USDA(1)
fruits_USDA = struct(...
'number', {9003, 9038, 9050, 9070, 9148, 9176, 9191, 9316}, ...
'name', {'APPLES,RAW,WITH SKIN','AVOCADOS,RAW,CALIFORNIA', ...
'BLUEBERRIES,RAW','CHERRIES,SWEET,RAW','KIWIFRUIT,GRN,RAW', ...
'MANGOS,RAW','NECTARINES,RAW','STRAWBERRIES,RAW'}, ...
'calories', {52 167 57 63 61 60 44 32}, ...
'protein', {0.2600 1.9600 0.7400 1.0600 1.1400 0.8200 1.0600 0.6700}, ...
'carbs', {13.8100 8.6400 14.4900 16.0100 14.6600 14.9800 10.5500 7.6800}, ...
'fiber', {2.4000 6.8000 2.4000 2.1000 3.0000 1.6000 1.7000 2.0000}, ...
'sugar', {10.3900 0.3000 9.9600 12.8200 8.9900 13.6600 7.8900 4.8900}, ...
'scaling', {109 136 68 138 69 336 129 152}, ...
'serving', {'1 cup, slices','1 fruit, without skin and seed', ...
'50 berries','1 cup, with pits yields','1 fruit, (2" dia)', ...
'1 fruit, without refuse','1 small, (2-1/3" dia)', ...
'1 cup, halves'}, ...
'protein_stats', {[0.019 0.17 0.57], [0.156 1.53 3], [0.019 0.6 0.97], ...
[0.075 0.94 1.2], [0.116 0.8 1.6], [0.153 0.44 1.14], ...
[0.060 0.82 1.26], [0.026 0.51 0.89]});
bar([[fruits_USDA.protein]', [fruits_USDA.fiber]', [fruits_USDA.sugar]' ])
set(gca, 'XTickLabel', {fruits_USDA.name}, 'XTickLabelRotation', 45)
ylabel('Grams per 100 grams')
legend('protein', 'fiber', 'sugar');
other_carbs = [fruits_USDA.carbs]'-...
[fruits_USDA.fiber]'-[fruits_USDA.sugar]';
bar([[fruits_USDA.fiber]', [fruits_USDA.sugar]',...
other_carbs], 'stacked')
set(gca, 'XTickLabel', {fruits_USDA.name}, 'XTickLabelRotation', 45)
ylabel('Grams per 100 grams')
legend( 'fiber', 'sugar', 'other carbs');
figure()
hold on
h1 = bar([fruits_USDA.protein]);
for ifruit = 1:size(fruits_USDA,2)
%Plot standard deviation as error bar
h2 = errorbar(ifruit, fruits_USDA(ifruit).protein, ...
fruits_USDA(ifruit).protein_stats(1),'m');
%Plot min and max measurements
h3 = plot(ifruit, fruits_USDA(ifruit).protein_stats(2), 'ro',...
'MarkerFaceColor', 'r');
h4 = plot(ifruit, fruits_USDA(ifruit).protein_stats(3), 'rs',...
'MarkerFaceColor', 'm');
end
title('Protein content in fruits')
set(gca, 'XTick', 1:8, 'XTickLabel', {fruits_USDA.name}, 'XTickLabelRotation', 45)
ylabel('Grams per 100 grams')
legend([h1 h2 h3 h4], {'Mean', 'Standard error', 'Min', 'Max'})