Юлия NetCDF возвращается только Uint8

Я мигрирую из matlab в Джулию. Использование julia v 0.4.2 и пакета NetCDF от Meggart

Я пытаюсь импортировать переменную так же, как я импортирую ее в Matlab:

Tiempo = ncread(Arch,"Times")';

И, если я просматриваю содержимое переменной на Matlab, у меня есть: тип 24x19 char и contents:

Tiempo(1,:) = 2010-03-01_01:00:00

В Юлии, однако, я получаю только:

julia> typeof(Tiempo[1,:])
Array{UInt8,2}

julia> Tiempo[1,:]
1x19 Array{UInt8,2}:
 0x32  0x30  0x31  0x30  0x2d  0x30  …  0x3a  0x30  0x30  0x3a  0x30  0x30

И я не знаю, как его использовать или как восстановить полезные данные. Можете ли вы пролить свет на это?

1 ответ

Решение

7.8 Литералы байтовых массивов
Другим полезным нестандартным строковым литералом является строковый литерал байтового массива: b"...". Эта форма позволяет использовать строковую нотацию для выражения литеральных байтовых массивов, т. Е. Массивов значений UInt8.....

julia> tiempo=b"2010-03-01_01:00:00"
19-element Array{UInt8,1}:
 0x32
 0x30
 0x31
 0x30
 0x2d
 0x30
 0x33
 0x2d
 0x30
 0x31
 0x5f
 0x30
 0x31
 0x3a
 0x30
 0x30
 0x3a
 0x30
 0x30

julia> ASCIIString(tiempo)
"2010-03-01_01:00:00"

Итак, у вас есть литерал байтового массива, и он может быть преобразован в ASCIIString тип, используя его конструктор с правильными аргументами (например, вектор UInt8) Также для отправки всех элементов Array{UInt8,2} подряд может быть одна возможность ASCIIString(Tiempo[1:end]),

Другие вопросы по тегам