Как я могу получить значение из Matlab container.map - PullRequest
1 голос
/ 05 апреля 2020

Я неопытен, когда дело доходит до Matlab, и пытался использовать Containers.map, чтобы сделать мой код проще. После некоторых проб и ошибок я смог ввести значения в свой контейнер, но изо всех сил пытаюсь найти хороший способ их получения.

Чтобы проиллюстрировать мою проблему, я поместил сокращенную версию своего кода ниже

Carbon = containers.Map({'AMod','TMod','PRat','SMod','ATS','SS','Density'}, ...
    {235.2,22.1,0.3,27,3700,36,1.8},'UniformValues',false);

Carbon('Q')=[15.23 12.10 1.12; 0.15 30.05 2.08; 20.23 0.05 5.87];

AModValue = values(Carbon,{'AMod'})
QValue    = values(Carbon,{'Q'})

Когда я запускаю этот код, я получаю следующие результаты:

AModValue =
  1×1 cell array
    {[235.2]}
QValue =
  1×1 cell array
    {3×3 double}

Насколько я понимаю, вся полезная информация, которую я имею, содержится в этих массивах 1x1. Есть ли хороший способ удалить эти данные из этих массивов и поместить их в соответствующие переменные для дальнейшего использования?

В этом примере я бы хотел, чтобы AModValue был двойным, а QValue - двойным 3х3. К сожалению, все, что я могу найти по этому вопросу, похоже, оставляет эти значения внутри массива.

1 Ответ

2 голосов
/ 05 апреля 2020

Вам не нужно использовать values для получения значения:

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

AModValue = Carbon('AMod')
QValue    = Carbon('Q')

Результат:

AModValue =

  235.2000


QValue =

   15.2300   12.1000    1.1200
    0.1500   30.0500    2.0800
   20.2300    0.0500    5.8700
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...