Возникли проблемы с доступом к полю структуры в MATLAB - PullRequest
1 голос
/ 21 июня 2011

У меня есть структура в MATLAB. Когда я пытаюсь получить доступ к полю, я вижу следующее:

[4158x5 double]

Как мне получить сам массив?

1 Ответ

1 голос
/ 21 июня 2011

Я предполагаю, что матрица, хранящаяся в вашем поле структуры, инкапсулирована в массив ячеек , поэтому вам нужно использовать фигурные скобки {} для индексации содержимого ячейки (т.е. содержание индексация). Рассмотрим этот пример:

>> S.field1 = {1:5};  %# Create structure S with field 'field1' containing a cell
                      %#   array which itself contains a 1-by-5 vector
>> S.field1           %# Index just the field...

ans = 

    [1x5 double]      %# ...and you see the sort of answer you were getting

>> S.field1{1}        %# Index the field and remove the contents of the cell...

ans =

     1     2     3     4     5  %# ...and now you get the vector

ПРИМЕЧАНИЕ: В более новых версиях MATLAB все отображается немного по-другому, что позволяет избежать этой путаницы. Вот что вы увидите сейчас:

>> S.field1

ans =

  cell    % Note now that it displays the type of data

    [1×5 double]
...