WXF (.wxf)

予備知識

    • Wolfram交換形式.
    • バイナリ形式.
    • 直列化された,プラットフォーム非依存の形式であらゆるWolfram言語式を表す.
    • バージョン管理形式.
    • Wolfram Researchによって2017年に開発された.

ImportとExport

  • Import["file.wxf"]はWXFファイルをWolfram言語の式としてインポートする.
  • ImportString["string","WXF"]はWXFの文字列をバイトとしてインポートする.
  • ImportByteArray[bytearray, "WXF"]はバイトのWXF配列をインポートする.
  • Export["file.wxf",expr]はexprのバイナリ表現をWXFファイルにエキスポートする.
  • ExportString[expr,"WXF"]はバイトのWXF文字列にデキスポートする.
  • ExportByteArray[expr, "WXF"]はexprをWXFのバイト配列としてエキスポートする.
  • 一般的な情報は,以下の関数ページを参照のこと.
  • Import, Exportファイルからインポートする,あるいはファイルへエキスポートする
    CloudImport, CloudExportクラウドオブジェクトからインポートする,あるいはクラウドオブジェクトへエキスポートする
    ImportString, ExportString文字列からインポートする,あるいは文字列へエキスポートする
    ImportByteArray, ExportByteArrayバイト配列からインポートする,あるいはバイト配列へエキスポートする

Import要素

  • 一般的なImport要素:
  • "Elements" ファイル中の有効な要素とオプションのリスト
    "Summary"ファイルの概要
    "Rules"使用可能なすべての要素の規則のリスト
  • Import要素:
  • "Expression"直列化された式を返す
    "HeldExpression"HoldCompleteで囲まれた式を返す
    "ExprStruct""ExprStruct" データ構造として式を返す
  • ImportはWolfram言語のWXFファイルに対し,デフォルトで"Expression"要素を使用する.

オプション

例題

すべて開くすべて閉じる

  (4)

式をWXFにエキスポートする:

文字列をWXFにエキスポートする:

記号式をWXFにエキスポートする:

式としてインポートする:

任意のWolfram言語式をWXF形式にエキスポートする:

式としてインポートする:

スコープ  (2)

式をWXFのバイト配列に直列化する:

BinaryDeserializeを使って非直列化する:

式をWXFバイト配列に直列化する:

形式の自動検出を使ってインポートする:

Import要素  (4)

利用できる要素をリストする:

未評価式を直列化する:

これをデフォルト要素"Expression"を使ってインポートする:

要素"HeldExpression"を使って未評価で保持された形式でインポートする:

信頼できないソースからWXFデータを取得する:

要素"HeldExpression"を調べる:

コードは安全なので,これを評価する:

"ExprStruct"要素とともにバイトをインポートする:

式は未評価の状態でホールドされている:

Exportオプション  (5)

PerformanceGoal  (2)

BinarySerializeを使って式を直列化し,圧縮された出力を生成する:

結果のバイト配列をインポートする:

データ集合を直列化する:

PerformanceGoal"Size"に設定して,同じデータ集合を直列化する:

出力のサイズを計算する:

どちらも同じ式を表している:

Method  (3)

デフォルトでは,整数のパックアレーのWXF直列化には,データに適した最小の整数型が使われる:

より大きい整数型を使ってパックアレーをエキスポートする:

実数値のパックアレーを作る:

デフォルトでは,実数値のパックアレーのWXF直列化には機械倍精度数が使われる:

配列を機械浮動少数点数を使ってエキスポートする:

複素数値のパックアレーを作る:

デフォルトでは,複素数値のパックアレーのWXF直列化では,1つの複素数値を表すのに2つの機械倍精度数が使われる:

より低い精度を使って配列をエキスポートする:

特性と関係  (2)

ExportByteArray[expr,"WXF"]は事実上BinarySerialize[expr]と同じである:

ImportByteArray[ba,"WXF"]は事実上BinaryDeserialize[ba]と同じである: