Этот пример показывает, как получить баскетбольную команду постоянные данные под эгидой 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 — Количество игр позади