Main Content

convertContainedStringsToChars

cell 配列または構造体の任意のレベルの string 配列を変換

説明

コードで、入力引数として string を含む cell 配列および構造体を受け入れるようにするには、コードの先頭に convertContainedStringsToChars の呼び出しを追加します。これにより、文字配列を含む cell 配列または構造体を処理する作成済みのコードにその他の変更を加える必要がなくなります。

B = convertContainedStringsToChars(A) は、A のすべてのレベルの string 配列を変換します。

  • A が string 配列の場合、B は文字ベクトル、または文字ベクトルの cell 配列です。

  • A が cell 配列または構造体の場合、A のすべての cell またはフィールドにある string 配列が、B では文字ベクトル、または文字ベクトルの cell 配列になります。A の他のすべての cell またはフィールドは、B 内で変更されません。

  • それ以外の場合、この関数は A を変更せずに返します。

[B1,...,Bn] = convertContainedStringsToChars(A1,...,An) は、入力引数 A1,...,An を変換します。各入力引数に対応する出力引数が B1,...,Bn になければなりません。

すべて折りたたむ

打ち上げ日、宇宙船名、および訪れた惑星を含む cell 配列を作成します。string 配列を含む cell と含まない cell があります。

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

C の string を文字ベクトルに変換します。

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

この関数によって、string 配列 ["Jupiter","Saturn"] は、C(2,3) の cell に含まれる文字ベクトルの cell 配列に変換されます。cell の内容にアクセスするには、中かっこのインデックス付けを使用します。

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

プロットのデータ、タイトルおよびラベルの各配列を含む構造体を作成します。string を含むフィールドと含まないフィールドがあります。

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: [0 0.0635 0.1269 0.1904 0.2539 0.3173 0.3808 0.4443 0.5077 0.5712 0.6347 0.6981 0.7616 0.8251 0.8885 0.9520 1.0155 1.0789 1.1424 1.2059 1.2693 1.3328 1.3963 1.4597 1.5232 1.5867 1.6501 1.7136 1.7771 1.8405 1.9040 ... ] (1x100 double)
             y: [0 0.0634 0.1266 0.1893 0.2511 0.3120 0.3717 0.4298 0.4862 0.5406 0.5929 0.6428 0.6901 0.7346 0.7761 0.8146 0.8497 0.8815 0.9096 0.9341 0.9549 0.9718 0.9848 0.9938 0.9989 0.9999 0.9969 0.9898 0.9788 0.9638 0.9450 ... ] (1x100 double)
         title: "y = sin(x)"
    axislabels: ["x (radians)"    "y"]

S の string を変換します。

S = convertContainedStringsToChars(S)
S = struct with fields:
             x: [0 0.0635 0.1269 0.1904 0.2539 0.3173 0.3808 0.4443 0.5077 0.5712 0.6347 0.6981 0.7616 0.8251 0.8885 0.9520 1.0155 1.0789 1.1424 1.2059 1.2693 1.3328 1.3963 1.4597 1.5232 1.5867 1.6501 1.7136 1.7771 1.8405 1.9040 ... ] (1x100 double)
             y: [0 0.0634 0.1266 0.1893 0.2511 0.3120 0.3717 0.4298 0.4862 0.5406 0.5929 0.6428 0.6901 0.7346 0.7761 0.8146 0.8497 0.8815 0.9096 0.9341 0.9549 0.9718 0.9848 0.9938 0.9989 0.9999 0.9969 0.9898 0.9788 0.9638 0.9450 ... ] (1x100 double)
         title: 'y = sin(x)'
    axislabels: {'x (radians)'  'y'}

異なる型からなる任意の数の入力配列を処理します。

double の配列、構造体および cell 配列を作成します。構造体および cell 配列には、二重引用符で指定された string が含まれています。

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)"}};

string を変換し、その他すべてのデータは変更せずに返します。

[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 array
    {1x2 cell}    {1x2 cell}

最初の cell である C(1) に含まれる cell 配列の内容を表示します。この関数は、入れ子にされた cell または構造体に含まれる string を文字ベクトルに変換します。文字ベクトルは、一重引用符で囲んで表示されることに注意してください。

C{1}
ans=1×2 cell array
    {[0 0.7818 0.9749 0.4339 -0.4339 -0.9749 -0.7818 -2.4493e-16]}    {'y = sin(x)'}

入力引数

すべて折りたたむ

入力配列。任意のサイズとデータ型の配列として指定します。

A が cell 配列または構造体の場合、入れ子にすることができます。cell には他の cell 配列を含めることができ、構造体は他の構造体のフィールドをもつことができます。convertContainedStringsToChars は、string であるそれぞれの要素またはフィールドの値を、対応する文字ベクトルまたは文字ベクトルの cell 配列に変換します。この関数は、入れ子にされたコンテナーの各レベルと組み合わせにわたって、関数 convertStringsToChars で定義されたルールを使用してそれぞれの要素またはフィールドの値を変換します。

拡張機能

スレッドベースの環境
MATLAB® の backgroundPool を使用してバックグラウンドでコードを実行するか、Parallel Computing Toolbox™ の ThreadPool を使用してコードを高速化します。

バージョン履歴

R2018b で導入