Неопределенная функция 'head' в Matlab - PullRequest
0 голосов
/ 17 октября 2018

Я столкнулся со странной проблемой.Я получаю эту ошибку при выполнении моего кода:

Неопределенная функция 'head' для входных аргументов типа 'table'.

filename = 'C:\\Users\\farazpc.ir\\Downloads\\Telegram 
Desktop\\MainDataset.csv';
m = readtable(filename);
h = head(m,500);

Хотя я проверил с помощью ver и которые командуют, и у меня есть эта функция, и я попытался установить путь для этого метода из Home в Matlab, а затем установить часть пути.Я следовал инструкциям по этой ссылке:

https://www.mathworks.com/help/matlab/matlab_prog/calling-functions.html

Вот путь для метода head:

 which head

 H:\signal matlab\toolbox\matlab\bigdata\@tall\head.m  % tall method

Моя версия Matlab - 2016b.Я действительно смущен и нуждаюсь в помощи.Заранее спасибо.

1 Ответ

0 голосов
/ 17 октября 2018

Функция head, которую вы ожидаете, представляет собой табличный метод, представленный в MATLAB R2016b (как указано в нижней части страницы документации ).

Я думаю, чтоЕсли вы используете версию MATLAB более раннюю, чем R2016b.

Во всех наборах инструментов фактически есть 4 функции заголовка (по состоянию на R2017b), вы можете получить список доступных функций, используя -all аргумент для which:

>> which head -all
C:\Program Files\MATLAB\R2017b\toolbox\matlab\bigdata\@tall\head.m              % tall method
C:\Program Files\MATLAB\R2017b\toolbox\matlab\datatypes\@tabular\head.m         % tabular method
C:\Program Files\MATLAB\R2017b\toolbox\distcomp\parallel\@codistributed\head.m  % codistributed method
C:\Program Files\MATLAB\R2017b\toolbox\distcomp\gpu\@gpuArray\head.m            % gpuArray method

Поскольку у вас нет табличного метода, не существует определенной функции head для типа ввода table - только для типов данных большого массива (или чего-либо еще)иначе у вас есть набор инструментов для).


Обходной путь

Быстрый обходной путь - просто используйте индексирование

h = m( 1:500, : ); % Get first 500 rows of m, for all columns

Если ваша таблицаможет не хватить строк, добавьте немного защиты:

h = m( 1:min(500,size(h,1)), : ); % Get first 500 rows (or all rows if <500)

Это в основном то, что в любом случае делает нужная функция head ...


Как указано в MATLAB tag wiki (или информация о теге) на этом сайте, пожалуйста, всегда указывайте, какие релизыВерсия, которую вы используете, помогает диагностировать проблемы точно так же, как эта!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...