writestruct
ファイルへの構造体の書き込み
説明
writestruct(
は、1 つ以上の名前と値のペアの引数で指定された追加のオプションを使用して、構造体をファイルに書き込みます。たとえば、S
,filename
,Name,Value
)filename
で指定されたファイル拡張子にかかわらず、writestruct(filename,"FileType","xml")
を呼び出して、入力構造体の内容を XML ファイルとしてエクスポートできます。
例
構造体の XML ファイルへの書き込み
XML 構造を含むテキスト ファイルから構造体を作成し、それを XML ファイルに書き込みます。
ファイル music.txt
の構造は以下のとおりです。
テキスト ファイル music.txt
を構造体 S
として読み取ります。'FileType'
を 'xml'
として指定して、入力の内容を XML ファイルとして読み取ります。
S = readstruct("music.txt","FileType","xml")
S = struct with fields:
Ensemble: [1x1 struct]
Musicians: [1x1 struct]
S
を band.xml
という名前の XML ファイルに書き込みます。band.xml
の内容を表示します。
writestruct(S,"band.xml") type band.xml
<?xml version="1.0" encoding="UTF-8"?> <struct> <Ensemble> <Music>Jazz</Music> <BandName>Kool Katz</BandName> <Instrumentation> <Instrument type="wind"> <Text>Trumpet</Text> </Instrument> <Instrument type="percussion"> <Text>Piano</Text> </Instrument> <Instrument type="percussion"> <Text>Drums</Text> </Instrument> <Instrument type="string"> <Text>Bass</Text> </Instrument> <pianotype>concert grand</pianotype> <drumkit>Bass drum</drumkit> <drumkit>Floor tom</drumkit> <drumkit>Snare drum</drumkit> <drumkit>Hi-hat</drumkit> <drumkit>Ride cymbal</drumkit> <basstype>upright</basstype> </Instrumentation> </Ensemble> <Musicians> <Name role="trumpeter"> <Text>Miles</Text> </Name> <Name role="vocalist"> <Text>Roger</Text> </Name> <Name role="pianist"> <Text>Diana</Text> </Name> <Name role="drummer"> <Text>George</Text> </Name> <Name role="bassist"> <Text>John</Text> </Name> </Musicians> </struct>
出力ファイルでのルート ノードの指定
music.xml
ファイルを構造体 S
として読み取ります。
S = readstruct("music.xml")
S = struct with fields:
Ensemble: [1x1 struct]
Musicians: [1x1 struct]
S
を band.xml
という名前の XML ファイルに書き込みます。ルート ノードに JazzBand
という名前を付けます。band.xml
の内容を表示します。
writestruct(S,"band.xml","StructNodeName","JazzBand") type band.xml
<?xml version="1.0" encoding="UTF-8"?> <JazzBand> <Ensemble> <Music>Jazz</Music> <BandName>Kool Katz</BandName> <Instrumentation> <Instrument type="wind"> <Text>Trumpet</Text> </Instrument> <Instrument type="percussion"> <Text>Piano</Text> <pianotype>concert grand</pianotype> </Instrument> <Instrument type="percussion"> <Text>Drums</Text> <drumkit>Bass drum</drumkit> <drumkit>Floor tom</drumkit> <drumkit>Snare drum</drumkit> <drumkit>Hi-hat</drumkit> <drumkit>Ride cymbal</drumkit> </Instrument> <Instrument type="string"> <Text>Bass</Text> <basstype>upright</basstype> </Instrument> </Instrumentation> </Ensemble> <Musicians> <Name role="trumpeter"> <Text>Miles</Text> </Name> <Name role="vocalist"> <Text>Roger</Text> </Name> <Name role="pianist"> <Text>Diana</Text> </Name> <Name role="drummer"> <Text>George</Text> </Name> <Name role="bassist"> <Text>John</Text> </Name> </Musicians> </JazzBand>
属性接尾辞の指定
出力 XML ファイルで属性として書き込む入力構造体のフィールド名を指定します。
music.xml
ファイルを構造体 S
として読み取ります。入力 XML ファイルの属性に対応する出力構造体のフィールド名に接尾辞 "_att"
を追加します。
S = readstruct("music.xml", "AttributeSuffix", "_att")
S = struct with fields:
Ensemble: [1x1 struct]
Musicians: [1x1 struct]
関連する属性をもつ S
のすべての要素には接尾辞 "_att"
が属性名に追加されます。
フィールド Musicians
をクエリして内容を表示します。Musicians
は 5 つの構造体を含む構造体で、そのそれぞれの構造体には、role
という関連する属性をもつ Name
というフィールドが含まれています。
S.Musicians.Name
ans=1×5 struct array with fields:
role_att
Text
S
を band.xml
という名前の XML ファイルに書き込み、その内容を表示します。接尾辞 "_att"
がファイルの属性名に追加されました。
writestruct(S,"band.xml") type band.xml
<?xml version="1.0" encoding="UTF-8"?> <struct> <Ensemble> <Music>Jazz</Music> <BandName>Kool Katz</BandName> <Instrumentation> <Instrument> <type_att>wind</type_att> <Text>Trumpet</Text> </Instrument> <Instrument> <type_att>percussion</type_att> <Text>Piano</Text> <pianotype>concert grand</pianotype> </Instrument> <Instrument> <type_att>percussion</type_att> <Text>Drums</Text> <drumkit>Bass drum</drumkit> <drumkit>Floor tom</drumkit> <drumkit>Snare drum</drumkit> <drumkit>Hi-hat</drumkit> <drumkit>Ride cymbal</drumkit> </Instrument> <Instrument> <type_att>string</type_att> <Text>Bass</Text> <basstype>upright</basstype> </Instrument> </Instrumentation> </Ensemble> <Musicians> <Name> <role_att>trumpeter</role_att> <Text>Miles</Text> </Name> <Name> <role_att>vocalist</role_att> <Text>Roger</Text> </Name> <Name> <role_att>pianist</role_att> <Text>Diana</Text> </Name> <Name> <role_att>drummer</role_att> <Text>George</Text> </Name> <Name> <role_att>bassist</role_att> <Text>John</Text> </Name> </Musicians> </struct>
writestruct(S,"band.xml","AttributeSuffix","_att")
構造体 S
を XML ファイルに再度書き込みます。今回は "AttributeSuffix"
の値を "_att"
指定して、属性として書き込む入力構造体のフィールドを示します。band.xml
の内容を表示します。band.xml
の属性には接尾辞 "_att"
はありません。
type band.xml
<?xml version="1.0" encoding="UTF-8"?> <struct> <Ensemble> <Music>Jazz</Music> <BandName>Kool Katz</BandName> <Instrumentation> <Instrument type="wind"> <Text>Trumpet</Text> </Instrument> <Instrument type="percussion"> <Text>Piano</Text> <pianotype>concert grand</pianotype> </Instrument> <Instrument type="percussion"> <Text>Drums</Text> <drumkit>Bass drum</drumkit> <drumkit>Floor tom</drumkit> <drumkit>Snare drum</drumkit> <drumkit>Hi-hat</drumkit> <drumkit>Ride cymbal</drumkit> </Instrument> <Instrument type="string"> <Text>Bass</Text> <basstype>upright</basstype> </Instrument> </Instrumentation> </Ensemble> <Musicians> <Name role="trumpeter"> <Text>Miles</Text> </Name> <Name role="vocalist"> <Text>Roger</Text> </Name> <Name role="pianist"> <Text>Diana</Text> </Name> <Name role="drummer"> <Text>George</Text> </Name> <Name role="bassist"> <Text>John</Text> </Name> </Musicians> </struct>
入力引数
S
— 入力構造体
MATLAB® 構造体
入力構造体。MATLAB 構造体として指定します。構造体は、フィールドと呼ばれるデータ コンテナーを使って、関連するデータをグループとしてまとめるデータ型です。
入力構造体に欠損値または NaN
が含まれている場合、writestruct
はフィールドの内容を空の string として書き込みます。
構造体の詳細については、struct
を参照してください。
filename
— ファイル名
文字ベクトル | string スカラー
書き込み対象のファイル名。文字ベクトルまたは string スカラーとして指定します。filename
が存在しない場合、書き込み関数がファイルを作成します。filename
が既存のファイルの名前である場合、書き込み関数はそのファイルを上書きします。
書き込み先の場所によって、filename
は次のいずれかの形式にできます。
場所 | 形式 | ||||||||
---|---|---|---|---|---|---|---|---|---|
現在のフォルダー | 現在のフォルダーに書き込むには、ファイルの名前を 例: | ||||||||
その他のフォルダー | 現在のフォルダーとは異なるフォルダーに書き込むには、絶対パス名または相対パス名を 例: 例: | ||||||||
リモートの場所 | リモートの場所に書き込むには、次の形式の Uniform Resource Locator (URL) を指定します。
リモートの場所に基づいて、
詳細については、リモート データの操作を参照してください。 例: |
名前と値の引数
引数のオプションのペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name
を引用符で囲みます。
例: 'StructNodeName','RootName'
は出力 XML ファイルのルート ノードに使用する名前を指定します。
FileType
— ファイルの種類
'auto'
(既定値) | 'xml'
ファイルの種類。'FileType'
と次の値のいずれかで構成されるコンマ区切りのペアとして指定します。
'auto'
—filename
で指定される拡張子から、書き込むファイル形式を自動的に検出します。'xml'
—filename
で指定される拡張子にかかわらず、構造体の内容を XML ファイルとしてエクスポートします。
filename
で .xml
でないファイル拡張子を指定する場合、'FileType'
の値を 'xml'
として指定して、入力構造体の内容を XML として書き出すことができます。
例: 'FileType','xml'
StructNodeName
— 出力 XML ファイルのルート ノード
文字ベクトル | string スカラー
出力 XML ファイルのルート ノードの名前。'StructNodeName'
と、出力で使用するルート ノードの名前を含む文字ベクトルまたは string スカラーとして指定します。StructNodeName
を指定しない場合、ルート ノードの既定の名前は "struct"
です。
例: 'StructNodeName','RootName'
AttributeSuffix
— 属性接尾辞
'Attribute'
(既定値) | 文字ベクトル | string スカラー
属性接尾辞。'AttributeSuffix'
と、出力 XML ファイルで属性として書き込む入力構造体のフィールド名を示す文字ベクトルまたは string スカラーで構成されるコンマ区切りのペアとして指定します。
たとえば、入力構造体のフィールド名 AttName_att
について、'AttributeSuffix','_att'
を指定して、'AttName'
が出力 XML ファイルで属性として書き込まれる必要があることを示します。
'AttributeSuffix'
を指定しない場合、writestruct
は既定で出力 XML ファイルで属性としてフィールドを接尾辞'Attribute'
を付けて書き出します。'AttributeSuffix'
の値として指定される属性が入力構造体の属性名に追加される接尾辞に一致する場合、その接尾辞は出力 XML ファイルの属性名から除かれます。たとえば、'AttributeSuffix','_att'
を指定する場合、MyField_att
という名前の入力構造体のフィールドは XML ファイルのMyField
という属性に対応します。
例: 'AttributeSuffix','_att'
バージョン履歴
R2020b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)