convertContainedStringsToChars

Преобразуйте строковые массивы на любом уровне массива ячеек или структуры

Описание

Чтобы заставить ваш код принять массивы ячеек и структуры, которые содержат строки как входные параметры, добавьте вызов convertContainedStringsToChars к началу вашего кода. Затем вы не должны вносить никакие другие изменения в код, который вы записали, чтобы работать с массивами ячеек или структурами, содержащими символьные массивы.

пример

B = convertContainedStringsToChars(A) преобразует строковые массивы на любом уровне в A.

  • Если A массив строк, затем B вектор символов или массив ячеек из символьных векторов.

  • Если A массив ячеек или структура, затем строковые массивы в любой ячейке или поле A станьте векторами символов или массивами ячеек из символьных векторов в B. Все другие ячейки или поля A неизменны в B.

  • В противном случае функция возвращает A неизменный.

пример

[B1,...,Bn] = convertContainedStringsToChars(A1,...,An) преобразует входные параметры A1,...,An. Для каждого входного параметра в B1,...,Bn должен быть соответствующий выходной аргумент.

Примеры

свернуть все

Создайте массив ячеек, содержащий даты запуска, относящиеся к космическому кораблю имена и планеты, которые посещают. Некоторые ячейки содержат строковые массивы, и другие не делают.

C = {2004,"Messenger","Mercury"; ...
     1977,"Voyager 1",["Jupiter","Saturn"]; ...
     2006,"New Horizons","Pluto"}
C=3×3 cell
    {[2004]}    {["Messenger"   ]}    {["Mercury"]}
    {[1977]}    {["Voyager 1"   ]}    {1x2 string }
    {[2006]}    {["New Horizons"]}    {["Pluto"  ]}

Преобразуйте строки в C к векторам символов.

C = convertContainedStringsToChars(C)
C=3×3 cell
    {[2004]}    {'Messenger'   }    {'Mercury'}
    {[1977]}    {'Voyager 1'   }    {1x2 cell }
    {[2006]}    {'New Horizons'}    {'Pluto'  }

Обратите внимание на то, что функция преобразует массив строк ["Jupiter","Saturn"] к массиву ячеек из символьных векторов, содержавшемуся в ячейке C(2,3). Чтобы получить доступ к содержимому ячейки, используйте изогнутую индексацию фигурной скобки.

C{2,3}
ans = 1x2 cell array
    {'Jupiter'}    {'Saturn'}

Создайте структуру, содержащую массивы данных, заголовка и меток для графика. Некоторые поля содержат строки, и другие не делают.

S.x = linspace(0,2*pi);
S.y = sin(S.x);
S.title = "y = sin(x)";
S.axislabels = ["x (radians)","y"]
S = struct with fields:
             x: [1x100 double]
             y: [1x100 double]
         title: "y = sin(x)"
    axislabels: ["x (radians)"    "y"]

Преобразуйте строки в S.

S = convertContainedStringsToChars(S)
S = struct with fields:
             x: [1x100 double]
             y: [1x100 double]
         title: 'y = sin(x)'
    axislabels: {'x (radians)'  'y'}

Обработайте произвольное число входных массивов различных типов.

Создайте массив, удваивается, структура и массив ячеек. Массив структур и массив ячеек содержат строки, заданные двойные кавычки использования.

x = linspace(0,2*pi,8);
S.y = sin(x);
S.title = "y = sin(x)";
C = {{sin(x),"y = sin(x)"},{cos(x),"y = cos(x)"}};

Преобразуйте строки и возвратите все другие неизменные данные.

[x,S,C] = convertContainedStringsToChars(x,S,C)
x = 1×8

         0    0.8976    1.7952    2.6928    3.5904    4.4880    5.3856    6.2832

S = struct with fields:
        y: [0 0.7818 0.9749 0.4339 -0.4339 -0.9749 -0.7818 -2.4493e-16]
    title: 'y = sin(x)'

C=1×2 cell
    {1x2 cell}    {1x2 cell}

Отобразите содержимое массива ячеек, содержавшегося в первой ячейке, C(1). Функция преобразует строки, которые находятся во вложенных ячейках или вложенных структурах к векторам символов. Обратите внимание на то, что векторы символов отображаются с одинарными кавычками.

C{1}
ans=1×2 cell
    {1x8 double}    {'y = sin(x)'}

Входные параметры

свернуть все

Входной массив, заданный как массив любого размера или типа данных.

Если A массив ячеек или структура, затем это может быть вложено. Ячейка может содержать другой массив ячеек, и структура может иметь поле, которое является другой структурой. convertContainedStringsToChars преобразует каждый элемент или значение поля, которое является строкой в соответствующий вектор символов или массив ячеек из символьных векторов. Функция преобразует каждый элемент или значение поля, использующее правила, заданные convertStringsToChars функция, пересекая каждый уровень и комбинацию вложенных контейнеров.

Введенный в R2018b