В этом примере показано, как получить баскетбольную команду постоянные данные под эгидой STATS.com в течение текущего года.
Этот пример требует ключа API STATS.com и секретного кода передачи для баскетбольных данных. Для получения дополнительной информации о ваших учетных данных для доступа к данным, свяжитесь с STATS.com.
Чтобы получить доступ к коду для этого примера, введите edit NBAStandingsExample.m
.
Создайте связь STATS.com sBasketball
поскольку извлечение статистических баскетбольных данных для спортивной лиги назвало 'nba'
. Настройте связь, чтобы получить команду постоянные данные путем определения параметра запроса 'Resource'
как 'standings'
.
sBasketball = statsllc('se33pc658r9abcahm4a9j93p','frvaBcb33y', ... 'DataType','stats','LeagueAbbreviation','nba', ... 'Resource','standings','SportName','basketball', ... 'VersionNumber','v1');
Получите позиции баскетбольной команды data
использование sBasketball
.
data = fetch(sBasketball);
Получите конференцию, деление и данные команды путем доступа к вложенной структуре data
. Чтобы получить доступ к каждому слою данных, создайте вложенный цикл. Преобразуйте возвращенные данные о структуре в таблицы. Создайте таблицу standingsTable
это содержит данные о позициях команды. Отобразите данные в Командном окне.
numConferences = length(data.apiResults.league.season.eventType.conferences); % Iterate through each conference for i = 1:numConferences numDivisions = length(data.apiResults.league.season.eventType.conferences(i).divisions); % Iterate through each division for j = 1:numDivisions % Access team data in each division t = struct2table(data.apiResults.league.season.eventType.conferences(i).divisions(j).teams); numTeams = length(data.apiResults.league.season.eventType.conferences(i).divisions(j).teams); recordTable = []; % Iterate through each team for k = 1:numTeams divisionStatusTable = struct2table(data.apiResults.league.season.eventType.conferences(i).divisions(j).teams(k).division); recordTable = [recordTable;struct2table(data.apiResults.league.season.eventType.conferences(i).divisions(j).teams(k).record) ... table(divisionStatusTable.gamesBehind, ... 'VariableNames',{'GamesBack'})]; end % Create table of team standing data standingsTable = table(strcat(t.location,strcat('.',t.nickname)), ... recordTable.wins,recordTable.losses,recordTable.percentage, ... recordTable.GamesBack,'VariableNames', ... {'Team','Wins','Losses','Percentage','GamesBehind'}); % Display team standing data to the command line disp([data.apiResults.league.season.eventType.conferences(i).name ... ' ' data.apiResults.league.season.eventType.conferences(i).divisions(j).name]) disp(' ') disp(standingsTable) end end
Eastern Conference Atlantic Division Team Wins Losses Percentage GamesBehind ____________________ ____ ______ __________ ___________ 'Toronto.Raptors' 56 26 .683 0 'Boston.Celtics' 48 34 .585 8 'New York.Knicks' 32 50 .390 24 'Brooklyn.Nets' 21 61 .256 35 'Philadelphia.76ers' 10 72 .122 46 ...
Командное окно отображает позиции баскетбольной команды для каждого деления. Имена столбцов:
Team
— Имя баскетбольной команды
Wins
— Количество побед
Losses
— Количество потерь
Percentage
— Процент игр выигран
GamesBehind
— Количество игр позади