Проблема создания структуры в моем скрипте в Matlab - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь записать переменную в структуру и прочитать ее из другой существующей структуры:

struct1.vector = struct2.matrix(:,1);

при запуске этой строки в моем скрипте будет создана двойная переменная Struct1. Вот почему я получу сообщение об ошибке:

Невозможно выполнить присваивание, поскольку индексирование точек не поддерживается для переменных этого типа.

Когда я просто запускаю ту же строку в В моем командном окне он создаст переменную структуры struct1 так, как я хочу. Также есть несколько строк, где я пытаюсь записать в struct1, и иногда первые 4 строки работают, а 5-я не работает. Я не понимаю, почему сценарий создает двойник, кто-нибудь может мне помочь с этим?

Помощь очень ценится, спасибо.

1 Ответ

2 голосов
/ 18 февраля 2020

Это, вероятно, означает, что в вашей рабочей области уже есть переменная с именем struct1, либо оставшаяся часть какого-либо предыдущего действия, либо назначенная ранее в скрипте.

Вы можете убедиться, что у вас есть fre sh рабочее пространство, вызвав clear перед запуском скрипта. А еще лучше, превратите ваш скрипт в функцию, и он будет иметь свое собственное рабочее пространство.

Вы также можете заменить всю переменную struct1 новой пустой структурой, чтобы убедиться, что она имеет правильный тип, прежде чем присваивание его полям.

struct1 = struct;
struct1.vector = struct2.matrix(:,1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...