Как преобразовать файл .mat, имеющий структуру 1x1, в файл .csv? - PullRequest
1 голос
/ 17 апреля 2020

Я пытаюсь вывести файл .mat в MATLAB, но получаю эту ошибку:

a = load('GT_IMG_4.mat');
imshow(a);

Ошибка при использовании imageDisplayValidateParams
Ожидаемый ввод числа 1, I, быть одним из следующих типов:
double, single, uint8, uint16, uint32, uint64, int8, int16, int32, int64, logical. Вместо этого его тип был struct.

Ошибка в images.internal.imageDisplayValidateParams (строка 11)

validateattributes(common_args.CData, {'numeric','logical'},...

Ошибка в images.internal.imageDisplayParseInputs (строка 78)

common_args = images.internal.imageDisplayValidateParams(common_args);

Ошибка в imshow (строка 222)

images.internal.imageDisplayParseInputs({'Parent','Border','Reduce'},preparsed_varargin{:});

Почему я получаю эту ошибку и как ее устранить? Файл .mat является основной правдой изображения. Как посмотреть файл .mat?

1 Ответ

3 голосов
/ 17 апреля 2020

load() вернет структуру, которая содержит данные в вашем файле mat.

Приведенный ниже код неверен, поскольку a - это struct, в котором хранятся ваши данные, а не сами данные.

a = load('GT_IMG_4.mat');
imshow(a);

Я предполагаю, что вы хотите сделать что-то вроде this:

h = load('GT_IMG_4.mat'); %I tend to use h to mean handles
imshow(h.a);

Обратите внимание: если вы введете h в командном окне (после загрузки), вы должны увидеть содержимое структуры. Возможно, вам придется немного покопаться, чтобы найти a в зависимости от того, как вы сохранили свои данные.

Технически вы также можете сделать это (предполагая, что h.a работал выше):

load('GT_IMG_4.mat');
imshow(a);

Это загрузит переменные из файла mat в текущую рабочую область. Пожалуйста, не делай этого. Я имею в виду, что вы можете ... но это одна из моих любимых мозолей, потому что тогда вы не знаете, откуда взялся a.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...