массив ячеек строк в структуре matlab

мне нужно создать структуру matlab как таковую ds=struct('name',{{'my_name_is'},{'matlab_thining_hair'}}), который хранится в виде массива структуры 1x2 с именем Поля. Вызов ds.name генерирует выходной:

ds.name
ans = 'my_name_is'
ans = 'matlab_thining_hair'

обратите внимание на одинарные кавычки в выводе. Они очень важны. Тем не менее, мне нужно создать вышеупомянутую структуру, используя следующую переменную: X = [1x46 char] [1x47 char] т. е. ячейка 1x2, которая, как я считаю, на самом деле является массивом строк. Помимо прочего, я пробовал следующее:

Y = cell2struct(X, 'name', 1)'

что приводит к массиву структуры 1x2 с именем поля, однако вызов Y генерирует вывод:

Y.name
ans = my_name_is
ans = matlab_thining_hair

обратите внимание, что одинарные кавычки в выходных данных отсутствуют, и хотя Y и ds являются массивами структуры 1x2 с именем поля, значения полей не форматируются одинаково, а структуры также различаются по размеру байтов. По существу, мне нужна структура с полями массивов ячеек, где по существу каждый массив ячеек состоит из уникального массива char. Я в недоумении, как форматировать значения полей как массивы символов? Любая помощь будет принята с благодарностью.

8
задан Canadian Luke
23.02.2023 5:42 Количество просмотров материала 3315
Распечатать страницу

1 ответ

нестыковка в вашем примере является то, что каждый элемент вашего оригинальный пример ДС.имя ячейки, содержащей символ (например, {'Меня зовут'}), если каждый элемент X является символ (например, 'мое имя'). Если вы измените тип каждого элемента X с char на ячейку, содержащую char, то вы должны получить поведение, которое вы ищете.

Это показано в примере ниже.

Х2={{'my_name_is'},{'matlab_thinning_hair'}};

Y = cell2struct (X2, 'имя', 1);

имя Ю.

ans =

'my_name_is'

ans =

'matlab_thinning_hair'

вы могли бы достичь этого для вашей переменной X путем индексирования через элементы и проведения:

X2{1}={X{1}};

X2{2}={X{2}}

справка matlab здесь очень полезно на эту тему.

1
отвечен Chogg 2023-02-24 13:30

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх