Октава: подписки на текстовые функции? - PullRequest
0 голосов
/ 15 января 2020

Я использую Octave 5.1.0. Я пытаюсь воспроизвести код на этой странице: https://octave.sourceforge.io/octave/function/text.html

Например, я пытаюсь воспроизвести там Демонстрацию 3, т.е. этот код:

 clf;
 axis ([0 8 0 8]);
 title (["1st title";"2nd title"]);
 xlabel (["1st xlabel";"2nd xlabel"]);
 ylabel (["1st ylabel";"2nd ylabel"]);
 text (4, 4, {"Hello", "World"}, ...
       "horizontalalignment", "center", ...
       "verticalalignment", "middle");
 grid on;

I получить следующее сообщение об ошибке:

текст (,,, , , , ): индексы должны быть целыми числами от 1 до (2 ^ 63) -1 или логика (примечание: переменная функция 'text' shadows)

Я попытался изменить код на:

clf;
 axis ([0 8 0 8]);
 title (['1st title';'2nd title']);
 xlabel (['1st xlabel';'2nd xlabel']);
 ylabel (['1st ylabel';'2nd ylabel']);
 text (4, 4, 'Hello','horizontalalignment', 'center','verticalalignment', 'middle');
 grid on;

Тогда я получаю следующую ошибку сообщение:

текст (4 ... [x6] ...): но текст имеет размер 1x39 (примечание: переменная функция 'text' shadows)

I Я немного озадачен тем, как решить эту проблему. Я также не могу воспроизвести другой код с текстовой функцией. Я начал работать с Octave несколько недель go, поэтому не исключено, что моя установка как-то не удалась. Другие функции работают, как и ожидалось.

Я установил пакеты io и statistics. Могут ли они как-то помешать?

Кто-нибудь может понять, что происходит?

1 Ответ

0 голосов
/ 15 января 2020

Ключ в сообщении об ошибке:

примечание: переменная функция 'text' shadows

Это означает, что вы определили "текст" как переменную в вашем рабочее пространство, и присвоили ему значение.

Поэтому теперь каждый раз, когда вы пытаетесь получить доступ к функции text, вы вместо этого обращаетесь к своей переменной.

Очистите свое рабочее пространство (или только переменную text) и попробуйте снова.

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

In Вообще, всегда проверяйте, что имя не занято, прежде чем назначить что-то этому имени, чтобы избежать «затенения», как в этом случае.

...