spreadsheetDatastore

Datastore для файлов электронной таблицы

Описание

Используйте SpreadsheetDatastore объект управлять большим количеством файлов электронной таблицы, где набор не обязательно умещается в памяти. Можно создать SpreadsheetDatastore объект с помощью spreadsheetDatastore функционируйте, задайте его свойства, и затем импортируйте функции объекта использования данных.

Создание

Описание

пример

ssds = spreadsheetDatastore(location) создает datastore электронной таблицы из набора данных, заданных location.

ssds = spreadsheetDatastore(location,Name,Value) задает дополнительные параметры и свойства для ssds использование одного или нескольких аргументов пары "имя-значение". Например, spreadsheetDatastore(location,'FileExtensions',{'.xlsx','.xls'}) задает который файлы включать в datastore в зависимости от расширений файла.

Входные параметры

развернуть все

Файлы или папки, включенные в datastore в виде пути или DsFileSet объект.

  • path Задайте путь как вектор символов, массив ячеек из символьных векторов, строковый скаляр или массив строк, содержа местоположение файлов или папок, которые являются локальными или удаленными.

    • Локальные файлы или папки — Задают location как локальный путь к файлам или папкам. Если файлы не находятся в текущей папке, то локальный путь должен задать полные или относительные пути. Файлы в подпапках заданной папки автоматически не включены в datastore. Можно использовать подстановочный символ (*) при определении локального пути. Этот символ указывает, что datastore включает все файлы соответствия или все файлы в соответствующих папках.

    • Удаленные файлы или папки — Задают location быть полными путями файлов или папок как универсальный локатор ресурса (URL) формы hdfs:///path_to_file. Для получения дополнительной информации смотрите работу с Удаленными данными.

  • DsFileSet объект — также можно задать location как DsFileSet объект. Для получения дополнительной информации смотрите matlab.io.datastore.DsFileSet.

Когда location представляет папку, datastore включает только поддерживаемые форматы файлов и игнорирует любой другой формат. Чтобы задать пользовательский список расширений файла, чтобы включать в ваш datastore, смотрите FileExtensions свойство.

spreadsheetDatastore функция поддерживает эти расширения: .xls, .xlsx, .xlsm, .xltx, и .xltm.

Пример: 'file1.xlsx'

Пример: '../dir/data/file1.xlsx'

Пример: {'C:\dir\data\file1.xlsx','C:\dir\data\file2.xlsx'}

Пример: 's3://bucketname/path_to_files/*.xls'

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: ssds = spreadsheetDatastore('C:\dir\spreadsheetdata','FileExtensions',{'.xls','.xlsm'})

Расширения файла электронной таблицы в виде разделенной запятой пары, состоящей из 'FileExtensions' и вектор символов, массив ячеек из символьных векторов, строковый скаляр или массив строк.

  • Если вы не задаете 'FileExtensions', затем spreadsheetDatastore автоматически включает все файлы с .xls, .xlsx, .xlsm, .xltx, и .xltm расширения в заданном пути.

  • Если вы хотите включать электронные таблицы с нестандартными расширениями файла в SpreadsheetDatastore, затем задайте те расширения явным образом.

  • Если вы хотите создать SpreadsheetDatastore для файлов без любых расширений затем задайте 'FileExtensions' как пустой символьный вектор, ''.

Пример: 'FileExtensions',''

Пример: 'FileExtensions','.xls'

Пример: 'FileExtensions',{'.xlsx','.xlsm'}

Типы данных: char | cell | string

Включение подпапки отмечает в виде разделенной запятой пары, состоящей из 'IncludeSubfolders' и trueложь, 0, или 1. Задайте true включать все файлы и подпапки в каждой папке или false включать только файлы в каждой папке.

Если вы не задаете 'IncludeSubfolders', затем значением по умолчанию является false.

Пример: 'IncludeSubfolders',true

Типы данных: логический | double

Выведите тип данных в виде разделенной запятой пары, состоящей из 'OutputType' и одно из этих значений:

  • 'auto' — Обнаруживает, если выход от datastore должен быть таблицей или расписанием на основе того, задаете ли вы 'RowTimes' пара "имя-значение". Если вы задаете 'RowTimes' затем выход является расписанием; в противном случае выход является таблицей.

  • 'table' — Возвратите table.

  • 'timetable' — Возвратите timetable.

Значение OutputType определяет тип данных, возвращенный previewчтение, и readall функции. Используйте эту опцию в сочетании с 'RowTimes' пара "имя-значение", чтобы возвратить расписания в SpreadsheetDatastore.

Пример: 'OutputType','timetable'

Типы данных: char | string

Альтернативные пути к корню файловой системы в виде разделенной запятой пары, состоящей из 'AlternateFileSystemRoots' и вектор строки или массив ячеек. Используйте 'AlternateFileSystemRoots' когда вы создаете datastore на локальной машине, но должны получить доступ и обработать данные на другой машине (возможно различной операционной системы). Кроме того, когда обработка данных с помощью Parallel Computing Toolbox™ и MATLAB® Parallel Server™ и данных хранится на локальных машинах с копией доступных данных в облаке другой платформы или кластерных машинах, необходимо использовать 'AlternateFileSystemRoots' сопоставлять корневые пути.

  • Чтобы сопоставить набор корневых путей, которые эквивалентны друг другу, задайте 'AlternateFileSystemRoots' как вектор строки. Например,

    ["Z:\datasets","/mynetwork/datasets"]

  • Чтобы сопоставить несколько наборов корневых путей, которые эквивалентны для datastore, задайте 'AlternateFileSystemRoots' как массив ячеек, содержащий несколько строк, где каждая строка представляет набор эквивалентных корневых путей. Задайте каждую строку в массиве ячеек или как вектор строки или как массив ячеек из символьных векторов. Например:

    • Задайте 'AlternateFileSystemRoots' как массив ячеек векторов строки.

      {["Z:\datasets", "/mynetwork/datasets"];...
       ["Y:\datasets", "/mynetwork2/datasets","S:\datasets"]}

    • В качестве альтернативы задайте 'AlternateFileSystemRoots' как массив ячеек массива ячеек из символьных векторов.

      {{'Z:\datasets','/mynetwork/datasets'};...
       {'Y:\datasets', '/mynetwork2/datasets','S:\datasets'}}

Значение 'AlternateFileSystemRoots' должен удовлетворить этим условиям:

  • Содержит одну или несколько строк, где каждая строка задает набор эквивалентных корневых путей.

  • Каждая строка задает несколько корневых путей, и каждый корневой путь должен содержать по крайней мере два символа.

  • Корневые пути уникальны и не являются подпапками друг друга.

  • Содержит по крайней мере одну корневую запись пути, которая указывает на местоположение файлов.

Для получения дополнительной информации смотрите Настроенный Datastore для Обработки на Различных Машинах или Кластерах.

Пример: ["Z:\datasets","/mynetwork/datasets"]

Типы данных: string | cell

Тип выходных данных текстовых переменных в виде разделенной запятой пары, состоящей из 'TextType' и любой 'char' или 'string'.

  • Если выходная таблица от readreadall, или preview функции содержат текстовые переменные, затем 'TextType' задает тип данных тех переменных.

  • Если 'TextType' ischar, затем выход является массивом ячеек из символьных векторов.

  • Если 'TextType' isstring, затем выход имеет, вводят string.

Типы данных: char | string

В дополнение к этим парам "имя-значение" также можно задать любое из свойств на этой странице как пары "имя-значение" (за исключением Files свойство.

Свойства

развернуть все

SpreadsheetDatastore свойства описывают формат файлов в объекте datastore и управляют, как данные считаны из datastore. За исключением Files свойство, можно задать значение SpreadsheetDatastore аргументы пары "имя-значение" использования свойств, когда вы создаете объект datastore. Чтобы просмотреть или изменить свойство после создания объекта, используйте запись через точку:

ds = spreadsheetDatastore('airlinesmall_subset.xlsx');
ds.Sheets = [1 2];
ds.Range = 'A1:C6';

File Properties

Файлы включали в datastore, разрешенный как массив ячеек из символьных векторов или массив строк, где каждый вектор символов или строка являются полным путем к файлу. location аргумент в spreadsheetDatastore и datastore функции задают эти файлы.

Первый файл, заданный в массиве ячеек, определяет имена переменных и данные о формате для всех файлов в datastore.

Пример: {'C:\dir\data\file1.xls';'C:\dir\data\file2.xls'}

Типы данных: cell | string

Количество линий, чтобы пропустить в начале каждого листа при чтении в виде положительного целого числа. Когда вы также задаете Range свойство, NumHeaderLines количество линий, чтобы пропустить в начале заданного блока данных.

Типы данных: double

Листы в файлах в виде вектора символов, массива ячеек из символьных векторов, строкового скаляра или массива строк, содержащего имена листа, или как числовой вектор индексов листа. Пустой символьный вектор '' указывает, что все листы в файлах включены.

Пример: {'sheet1','sheet7'}

Пример: [3 5 7]

Типы данных: char | cell | string | double

Строка и столбец ограничивает в виде вектора символов или строкового скаляра, который задает прямоугольный блок данных в листах. Пустой символьный вектор '' указывает, что границы являются началом файла и концом данных.

Пример: 'B1:T7'

Пример: 'A:C'

Типы данных: char | string

Индикатор для чтения первой строки первого файла в datastore как имена переменных в виде любого true(1 ) или false(0 ).

  • Если true, затем первая строка незаголовка первого файла определяет имена переменных для данных.

  • Если false, затем первая строка незаголовка первого файла содержит первую строку данных. Имена переменных по умолчанию присвоены как Var1, Var2, и так далее.

Типы данных: логический | double

Отметьте, чтобы сохранить имена переменных в виде разделенной запятой пары, состоящей из PreserveVariableNames и любой true, или false.

  • true — Сохраните имена переменных, которые не являются допустимыми идентификаторами MATLAB, такими как имена переменных, которые включают символы non-ASCII и пробелы.

  • false — Преобразуйте недопустимые имена переменных (как определено isvarname функция) к допустимым идентификаторам MATLAB.

Начиная в R2019b, имена переменных и имена строки могут включать любые символы, включая символы non-ASCII и пробелы. Кроме того, они могут начать с любых символов, не только обозначает буквами. Переменная и имена строки не должны быть допустимыми идентификаторами MATLAB (как определено isvarname функция. Чтобы сохранить эти имена переменных и имена строки, установите PreserveVariableNames к true.

Имена переменных в datastore в виде вектора символов, массива ячеек из символьных векторов, строкового скаляра или массива строк. Задайте имена переменных в порядке, в котором они появляются в файлах. Если вы не задаете имена переменных, datastore обнаруживает их от первой линии незаголовка в первом файле. Можно задать VariableNames с вектором символов или строковым скаляром, однако datastore преобразует и хранит значение свойства к массиву ячеек из символьных векторов. При изменении VariableNames свойство, количество новых имен переменных должно совпадать с количеством исходных имен переменных.

Чтобы поддержать недопустимые идентификаторы MATLAB как, имена переменных, такие как имена varible, содержащие пробелы и символы non-ASCII, устанавливают PreserveVariableNames параметр к true.

Если ReadVariableNames false, затем VariableNames значения по умолчанию к {'Var1','Var2', ...}.

Пример: {'Time','Date','Quantity'}

Типы данных: char | cell | string

Типы переменных в виде 'double''char'Строкакатегориальный, или 'datetime', который указывает на тип каждой переменной при чтении данных.

Список тип переменных соответствует переменным в VariableNames. Типы double'char', и datetime может быть автоматически обнаружен из данных. Можно задать VariableTypes как вектор символов или строковый скаляр, однако spreadsheetDatastore автоматически преобразует его в массив ячеек из символьных векторов или массив строк.

Пример: {'char','categorical'}

Типы данных: char | cell | string

Свойства для previewчтениеreadall Таблица

Переменные, чтобы читать из файла в виде вектора символов, массива ячеек из символьных векторов, строкового скаляра или массива строк. Каждый вектор символов или строка содержат имя одной переменной. Можно задать имена переменных в любом порядке. Можно задать SelectedVariableNames с вектором символов или строковым скаляром, однако spreadsheetDatastore автоматически преобразует его в массив ячеек из символьных векторов или массив строк.

Чтобы поддержать недопустимые идентификаторы MATLAB как, имена переменных, такие как имена переменных, содержащие пробелы и символы non-ASCII, устанавливают PreserveVariableNames параметр к true.

Пример: {'Var3','Var7','Var4'}

Типы данных: char | cell | string

Выбранная переменная вводит в виде 'double''char'Строкакатегориальный, или 'datetime', который указывает на тип каждой выбранной переменной при чтении данных. Список тип переменных соответствует переменным в SelectedVariableNames. Типы double'char', и datetime может быть автоматически обнаружен из данных. Можно задать SelectedVariableTypes как вектор символов или строковый скаляр, однако это автоматически преобразовано в массив ячеек из символьных векторов или массив строк.

Пример: {'double','datetime'}

Типы данных: char | cell | string

Объем данных, чтобы читать в вызове read функция в виде 'file' или 'sheet', или как положительный целочисленный скаляр.

  • Если ReadSize isfile, затем каждый вызов read считывает все данные один файл за один раз.

  • Если ReadSize 'sheet', затем каждый вызов read считывает все данные один лист за один раз.

  • Если ReadSize положительное целое число, затем каждый вызов read читает строки, заданные ReadSize, или меньше, если это достигает конца данных.

Когда вы изменяете ReadSize от целочисленного скаляра до 'file' или 'sheet', или с другой стороны, сброс datastore с помощью reset функция.

Типы данных: char | string | double

Имя переменной времен строки в виде разделенной запятой пары, состоящей из 'RowTimes' и имя переменной (такое как "Date") или переменный индекс (такой как 3).

RowTimes связанный с расписанием параметр. Каждая строка расписания сопоставлена со временем, которое получено во временном векторе для расписания. Переменная задана в RowTimes должен содержать datetime или duration вектор.

Если значение 'OutputType' istimetable, но вы не задаете 'RowTimes', затем SpreadsheetDatastore использует первый datetime или duration переменная как времена строки для расписания.

Свойства для использования writeall

Это свойство доступно только для чтения.

Папки, используемые, чтобы создать datastore, возвратились как массив ячеек из символьных векторов. Массив ячеек ориентирован как вектор-столбец. Каждый вектор символов является путем к папке, которая содержит файлы данных. location аргумент в spreadsheetDatastore и datastore функции задают Folders когда datastore создается.

Типы данных: cell

Это свойство доступно только для чтения.

Список форматов поддержан для записи, возвращенный как вектор-строка из строк. Это свойство задает возможные выходные форматы при использовании writeall записать выходные файлы из datastore.

Типы данных: string

Это свойство доступно только для чтения.

Выходной формат по умолчанию, возвращенный как строковый скаляр. Это свойство задает формат по умолчанию при использовании writeall записать выходные файлы из datastore.

Типы данных: string

Функции объекта

hasdataОпределите, доступны ли данные для чтения
numpartitionsКоличество разделов datastore
partitionРазделите datastore
previewПодмножество данных в datastore
readСчитайте данные в datastore
readallСчитывайте все данные в datastore
writeallЗапишите datastore в файлы
resetСброс Datastore к начальному состоянию
sheetnamesЗапросите имена листа от datastore
transformПреобразуйте datastore
combineОбъедините данные от нескольких datastores
isPartitionableОпределите, partitionable ли datastore
isShuffleableОпределите, shuffleable ли datastore

Примеры

свернуть все

ssds = spreadsheetDatastore('airlinesmall_subset.xlsx')
ssds = 

  SpreadsheetDatastore with properties:

                      Files: {
                             ' ...\matlab\toolbox\matlab\demos\airlinesmall_subset.xlsx'
                             }
   AlternateFileSystemRoots: {}
                     Sheets: ''
                      Range: ''

  Sheet Format Properties:
             NumHeaderLines: 0
      PreserveVariableNames: false
          ReadVariableNames: true
              VariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
              VariableTypes: {'double', 'double', 'double' ... and 26 more}

  Properties that control the table returned by preview, read, readall:
      SelectedVariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
      SelectedVariableTypes: {'double', 'double', 'double' ... and 26 more}
                   ReadSize: 'file'

Создайте SpreadsheetDatastore объект, содержащий файл airlinesmall_subset.xlsx.

ssds = spreadsheetDatastore('airlinesmall_subset.xlsx')
ssds = 

  SpreadsheetDatastore with properties:

                      Files: {
                             ' ...\matlab\toolbox\matlab\demos\airlinesmall_subset.xlsx'
                             }
                    Folders: {
                             ' ...\2020_01_08_h02m35s40_job1283294_pass\matlab\toolbox\matlab\demos'
                             }
   AlternateFileSystemRoots: {}
                     Sheets: ''
                      Range: ''

  Sheet Format Properties:
             NumHeaderLines: 0
      PreserveVariableNames: false
          ReadVariableNames: true
              VariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
              VariableTypes: {'double', 'double', 'double' ... and 26 more}

  Properties that control the table returned by preview, read, readall:
      SelectedVariableNames: {'Year', 'Month', 'DayofMonth' ... and 26 more}
      SelectedVariableTypes: {'double', 'double', 'double' ... and 26 more}
                   ReadSize: 'file'
                 OutputType: 'table'
                   RowTimes: []

  Write-specific Properties:
     SupportedOutputFormats: ["txt"    "csv"    "xlsx"    "xls"    "parquet"    "parq"]
        DefaultOutputFormat: "xlsx"

Отобразите имена листа для файла. Файл содержит один лист в год.

sheetnames(ssds,1)
ans = 

  13×1 string array

    "1996"
    "1997"
    "1998"
    "1999"
    "2000"
    "2001"
    "2002"
    "2003"
    "2004"
    "2005"
    "2006"
    "2007"
    "2008"

Задайте переменную FlightNum во втором листе как данные интереса и предварительный просмотр первые восемь строк.

ssds.Sheets = 2;
ssds.SelectedVariableNames = 'FlightNum';
preview(ssds)
ans =

  8×1 table

    FlightNum
    _________

      1014   
      1201   
       702   
      1184   
      1310   
      1759   
      1242   
      1558   

Только для чтения первые три строки переменных DepTime и ArrTime в первом листе.

ssds.ReadSize = 3;
ssds.Sheets = 1;
ssds.SelectedVariableNames = {'DepTime','ArrTime'};
read(ssds)
ans =

  3×2 table

    DepTime    ArrTime
    _______    _______

     2117       2305  
     1252       1511  
     1441       1708  

Считайте все листы четыре, пять, и шесть.

ssds.Sheets = 4:6;
readall(ssds);

Используйте OutputType и RowTimes пары "имя-значение", чтобы сделать SpreadsheetDatastore возвратите расписания вместо таблиц.

Создайте datastore для tsunamis_dated.xlsx. Задайте 'OutputType' как 'timetable' так, чтобы SpreadsheetDatastore возвращает расписания вместо таблиц.

ssds = spreadsheetDatastore('tsunamis_dated.xlsx','OutputType','timetable');
preview(ssds)
ans=8×15 timetable
       Date        Latitude    Longitude    ValidityCode          Validity          CauseCode               Cause                EarthquakeMagnitude       Country                 Location              MaxHeight    IidaMagnitude    Intensity    NumDeaths    DescDeaths              Time          
    ___________    ________    _________    ____________    ____________________    _________    ____________________________    ___________________    _____________    ____________________________    _________    _____________    _________    _________    __________    ________________________

    04-Mar-1952     42.15        143.85          4          {'definite tsunami'}        1        {'Earthquake'              }            8.1            {'JAPAN'    }    {'SE. HOKKAIDO ISLAND'     }        6.5           2.7              2           33           1         04-Mar-1952 01:22:41.000
    10-Jul-1958     58.34       -136.52          4          {'definite tsunami'}        3        {'Earthquake and Landslide'}            8.3            {'USA'      }    {'SE. ALASKA, AK'          }     524.26           4.6              5            5           1         10-Jul-1958 06:15:53.600
    22-May-1960     -39.5         -74.5          4          {'definite tsunami'}        1        {'Earthquake'              }            9.5            {'CHILE'    }    {'CENTRAL CHILE'           }         25           4.6              4         1260           3         22-May-1960 19:11:17.000
    20-Nov-1960      -6.8         -80.7          4          {'definite tsunami'}        1        {'Earthquake'              }            6.8            {'PERU'     }    {'PERU'                    }          9           3.2            2.5           66           2         20-Nov-1960 22:01:56.400
    28-Mar-1964      61.1        -147.5          4          {'definite tsunami'}        3        {'Earthquake and Landslide'}            9.2            {'USA'      }    {'PRINCE WILLIAM SOUND, AK'}         67           6.1              5          221           3         28-Mar-1964 03:36:14.000
    16-Jun-1964     38.65         139.2          4          {'definite tsunami'}        1        {'Earthquake'              }            7.5            {'JAPAN'    }    {'NW. HONSHU ISLAND'       }        5.8           2.7              2           26           1         16-Jun-1964 04:01:44.300
    14-Aug-1968       0.2         119.8          4          {'definite tsunami'}        1        {'Earthquake'              }            7.8            {'INDONESIA'}    {'BANDA SEA'               }         10           3.3              3          200           3         14-Aug-1968 22:14:19.400
    23-Feb-1969      -3.1         118.9          4          {'definite tsunami'}        1        {'Earthquake'              }            6.9            {'INDONESIA'}    {'MAKASSAR STRAIT'         }          4             2              2          600           3         23-Feb-1969 00:36:56.600

Когда вы не задаете 'RowTimes'SpreadsheetDatastore использует первый datetime или переменную длительности как времена строки. В этом случае, Date переменная используется в течение времен строки. Эти данные имеют две переменные datetime: Date и Time. Date переменная не включает информацию о часах, минутах или секундах, в то время как Time переменная имеет определенное время каждого события.

Задайте 'RowTimes' опция, чтобы использовать времена события (Time переменная) как времена строки.

ssds = spreadsheetDatastore('tsunamis_dated.xlsx','OutputType','timetable','RowTimes','Time');
preview(ssds)
ans=8×15 timetable
              Time              Latitude    Longitude    ValidityCode          Validity          CauseCode               Cause                EarthquakeMagnitude       Country                 Location              MaxHeight    IidaMagnitude    Intensity    NumDeaths    DescDeaths       Date    
    ________________________    ________    _________    ____________    ____________________    _________    ____________________________    ___________________    _____________    ____________________________    _________    _____________    _________    _________    __________    ___________

    04-Mar-1952 01:22:41.000     42.15        143.85          4          {'definite tsunami'}        1        {'Earthquake'              }            8.1            {'JAPAN'    }    {'SE. HOKKAIDO ISLAND'     }        6.5           2.7              2           33           1         04-Mar-1952
    10-Jul-1958 06:15:53.600     58.34       -136.52          4          {'definite tsunami'}        3        {'Earthquake and Landslide'}            8.3            {'USA'      }    {'SE. ALASKA, AK'          }     524.26           4.6              5            5           1         10-Jul-1958
    22-May-1960 19:11:17.000     -39.5         -74.5          4          {'definite tsunami'}        1        {'Earthquake'              }            9.5            {'CHILE'    }    {'CENTRAL CHILE'           }         25           4.6              4         1260           3         22-May-1960
    20-Nov-1960 22:01:56.400      -6.8         -80.7          4          {'definite tsunami'}        1        {'Earthquake'              }            6.8            {'PERU'     }    {'PERU'                    }          9           3.2            2.5           66           2         20-Nov-1960
    28-Mar-1964 03:36:14.000      61.1        -147.5          4          {'definite tsunami'}        3        {'Earthquake and Landslide'}            9.2            {'USA'      }    {'PRINCE WILLIAM SOUND, AK'}         67           6.1              5          221           3         28-Mar-1964
    16-Jun-1964 04:01:44.300     38.65         139.2          4          {'definite tsunami'}        1        {'Earthquake'              }            7.5            {'JAPAN'    }    {'NW. HONSHU ISLAND'       }        5.8           2.7              2           26           1         16-Jun-1964
    14-Aug-1968 22:14:19.400       0.2         119.8          4          {'definite tsunami'}        1        {'Earthquake'              }            7.8            {'INDONESIA'}    {'BANDA SEA'               }         10           3.3              3          200           3         14-Aug-1968
    23-Feb-1969 00:36:56.600      -3.1         118.9          4          {'definite tsunami'}        1        {'Earthquake'              }            6.9            {'INDONESIA'}    {'MAKASSAR STRAIT'         }          4             2              2          600           3         23-Feb-1969

Введенный в R2016a