Ошибка MATLAB: ранее казалось, что она используется как функция или команда

Я хочу создать функцию под названием E7stats, которая выполняет простой статистический анализ результатов первого промежуточного семестра, содержащихся в CSV-файле. Функция принимает на вход одну строку, имя файла, которое является именем CSV-файла, и возвращает один выход, массив структур 1⇥2 S , обе записи которого содержат четыре поля: среднее значение, стандартное отклонение, максимальное значение и минимальное значение. которые представляют собой среднее значение, стандартное отклонение, максимальное значение и минимальное значение электронных и бумажных промежуточных баллов. Функция также создает две гистограммы двух промежуточных оценок 1 с 30 ячейками одинакового размера. Баллы промежуточного семестра 1 в электронном и бумажном виде хранятся в первом и втором столбцах файла CSV.

Моя проблема в том, что я получаю сообщение об ошибке:

«mean» ранее использовалось как функция или команда, что противоречит его использованию здесь в качестве имени переменной. Возможная причина этой ошибки заключается в том, что вы забыли инициализировать переменную или инициализировали ее неявно, используя load или eval.

и я знаю, ПОЧЕМУ я получаю ошибку, но я не знаю, как ее исправить, потому что, как указано выше, мои переменные должны быть названы средним, минимальным, максимальным. любые предложения приветствуются. Спасибо!

function S= E7stats(filename)
filename='grades_E7MT1.csv';
S=csvread(filename,1,0);
stddev = std(S)
mean= mean(S)
min= min(S)
max= max(S)

Я спросил своего инструктора:

мы должны отображать содержимое в массиве структур или он должен просто возвращать массив структур вместе с массивом структур 1x2 с полями: означает stddev max, и он ответил: структура является выходом функции. вам не нужно отображать его в командном окне. Только убедитесь, что он имеет правильные поля и значения.

так что теперь я действительно запутался в том, что должна выводить моя функция? извините за всю путаницу!!


person Ajay Kejriwal    schedule 21.11.2012    source источник
comment
Невозможно сказать, если вы не сообщите нам, что это за сообщение об ошибке...   -  person Pete    schedule 21.11.2012
comment
Почему вы не можете изменить имя ваших переменных? Я не понимаю, где вы изложили эту спецификацию и почему она у вас вообще есть.   -  person Squazic    schedule 21.11.2012


Ответы (1)


Не используйте имя функции mean() в качестве имени вашей переменной. Назовите это myMean или как-то так.

Или, в качестве альтернативы, вы можете создать структуру с именами полей, такими как среднее, минимальное и максимальное:

d.mean = mean();
d.min  = min();
person jerad    schedule 21.11.2012
comment
Я думаю, вы только что решили мою проблему: мне нужно было вернуть ее в массив структур! спасибо :) - person Ajay Kejriwal; 21.11.2012