Строка кода работает нормально в командном окне, но не в редакторе - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть матрица, 18 строк, 3 столбца. Три столбца представляют положения объектов в виде координат x, y z. Я перенастраиваю свои объекты на основе их расстояния от другой матрицы (matrix2) следующим образом:

ShiftLeft = max(matrix(:,1)) - min(matrix2(:,1)) 

смещение зависит от того, как далеко крайняя правая координата matrix находится от крайней левой координаты matrix2.

Я несколько раз проверил значение ShiftLeft в командном окне, и оно работает нормально, его значение равно 7.

Все, что я хочу, - это создать новую матрицу, которая будет первой, но смещенной матрицей.

Я печатаю

matrix + [shiftleft 0 0] 

в командное окно, и оно производит новую матрицу, чего я и хочу.

Я тоже пробовал

newmatrix = matrix + [shiftleft 0 0]

в командном окне и снова, он производит матрицу, которую я хочу. Но когда я запускаю свой скрипт, он говорит мне, что именно эта строка выдает ошибку:

syntax error 
newmatrix = matrix + [shiftleft 0 0]
       ^

Что может быть причиной этой ошибки?

Первоначально я думал, что это было наименование матрицы, которая вызывает ошибку, но присвоение ей имени в командном окне работает нормально.

1 Ответ

0 голосов
/ 05 ноября 2018

Как указано в комментарии gnovice , ShiftLeft - это не то же самое, что shiftleft. Вероятно, у вас есть другая переменная shiftleft, определенная в вашем рабочем пространстве, и поэтому оператор matrix + [shiftleft 0 0] отлично работает в вашем командном окне. Но эта переменная не будет определена в скрипте, и поэтому вы получите сообщение об ошибке.

Например, я вижу это в командном окне Octave:

>> ShiftLeft=0
ShiftLeft = 0
>> shiftleft
error: 'shiftleft' undefined near line 1 column 1
...