I have a menu in which a user selects a continent and enters in a year that they want to look at a set of data values for. How would I go about extracting the values in matrix
조회 수: 1 (최근 30일)
이전 댓글 표시
Code for continent and year selection below:
function [continent, con_data] = choose_continent
%prompt messaged displayed in command window
disp ('Choose a continent in the menu to view its fossil fuel consumption')
%menu to choose continent
continent = menu('Choose a contient', 'Africa', 'Asia', 'Europe', 'North America', 'Oceania', 'South and Central America');
%if a continet isn't selceted and menu closed then an error messaged is
%displayed and the menu is reopened
while continent == 0
disp('Error! Please selected a continent.');
continent = menu('Choose a contient', 'Africa', 'Asia', 'Europe', 'North America', 'Oceania', 'South and Central America');
end
%loads the corresponding data for the chosen continent
if continent == 1
continent = 'Africa';
con_data = xlsread('Africa.xlsx')
elseif continent == 2
continent = 'Asia';
con_data = xlsread('Asia.xlsx')
elseif continent == 3
continent = 'Europe';
con_data = xlsread('Europe.xlsx')
elseif continent == 4
continent = 'North America';
con_data = xlsread('NorthAmerica.xlsx')
elseif continent == 5
continent = 'Oceania';
con_data = xlsread('Oceania.xlsx')
elseif continent == 6
continent = 'South and Central America';
con_data = xlsread('SouthCentralAmerica.xlsx')
end
function year = choose_year_2
year = input('Enter a year to view: ','s');
if year < 1964
disp('Error! Please enter a year between 1965 and 2021')
year = input('Enter a year to view: ','s')
elseif year > 2021
disp('Error! Please enter a year between 1965 and 2021')
year = input('Enter a year to view: ','s')
else
disp('Thank you')
end
댓글 수: 3
Voss
2022년 12월 15일
@Daniel Jackson: You don't want to use 's' in the call to input to get the year, since that is numeric:
function year = choose_year_2
year = input('Enter a year to view: ');
if year < 1964
disp('Error! Please enter a year between 1965 and 2021')
year = input('Enter a year to view: ')
elseif year > 2021
disp('Error! Please enter a year between 1965 and 2021')
year = input('Enter a year to view: ')
else
disp('Thank you')
end
Also, you should use input in a while loop to get and validate the year, like you do in choose_continent to get and validate the continent.
Voss
2022년 12월 15일
function [continent, con_data] = choose_continent()
% prompt messaged displayed in command window
disp('Choose a continent in the menu to view its fossil fuel consumption');
% menu to choose continent
all_continents = {'Africa', 'Asia', 'Europe', 'North America', 'Oceania', 'South and Central America'};
while true
continent = menu('Choose a contient', all_continents{:});
if continent ~= 0
break
end
% if a continent isn't selected and menu closed then an error messaged is
% displayed and the menu is reopened
disp('Error! Please selected a continent.');
end
% store the continent name
continent = all_continents{continent};
% remove ' and ' and then remove ' ' (space) from continent,
% and append '.xlsx', to get the corresponding file name:
file_name = [strrep(strrep(continent,' and ',''),' ','') '.xlsx'];
% loads the corresponding data for the chosen continent
con_data = xlsread(file_name);
채택된 답변
Voss
2022년 12월 15일
% user selects continent and year:
[continent, con_data] = choose_continent();
year = choose_year_2();
% then store the row of con_data corresponding to the selected year:
data = con_data(con_data(:,1) == year,:)
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Legend에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!