Функция 'pie' в MATLAB выдает ошибку "undefined function 'cos'" - PullRequest
0 голосов
/ 25 мая 2018

Я написал функцию, wins_plot, чтобы прочитать табло из файла и сохранить имя игрока, количество игр, побед и проигрышей.Я сохранил все те, кто использует структуру.Я зацикливаюсь на файле, сохраняю каждую строку в line, textscan для всего, что мне нужно из line, а затем повторяю i (изначально == 1), когда иду расширять свой массив структур.Фрагмент кода, представляющий то, что я говорю:

c = textscan(line, '%s %s %d %d %d');

  player(i).firstName = c{1};
  player(i).lastName = c{2};
  player(i).plays = c{3};
  player(i).wins = c{4};
  player(i).losses = c{5};

После того, как весь файл отсканирован и сохранен, я затем пишу этот код, чтобы извлечь количество побед каждого игрока и сохранить его в Xи, наконец, используйте функцию pie для представления значений в X

for n=1:(i-1)
    X(n) = player(n).wins;
end
pie(X);

. Я получаю стену ошибки после:

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

Ошибка в pol2cart (строка 22) x = r. * cos (th);

Ошибка в круговой диаграмме (строка 99) [xtext, ytext] = pol2cart (theta0 + x(i) * pi, 1.2);

Ошибка в wins_plot (строка 30) pie (X);

Понятия не имею, что может быть не так.Любая помощь будет принята с благодарностью.Пожалуйста, имейте в виду, что я только начал изучать MATLAB сегодня, поэтому мои знания об этом очень ограничены (и у меня R2013a).Заранее спасибо!

1 Ответ

0 голосов
/ 25 мая 2018

Числа читаются как int32, но когда вы звоните pie, для вычисления требуется, чтобы они были двойными.Поэтому, когда вы вызываете pie, попробуйте привести значения к double.Попробуйте это,

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