MatlabのRのdput()に相当するものはありますか?MatlabのRのdput()に相当するものはありますか?
dput()は、RオブジェクトのASCIIテキスト表現をファイルまたは接続に書き込みます。
MatlabのRのdput()に相当するものはありますか?MatlabのRのdput()に相当するものはありますか?
dput()は、RオブジェクトのASCIIテキスト表現をファイルまたは接続に書き込みます。
更新1:セルの再帰とサポートが追加されました!
更新日2:構造のサポートが追加されました!
UPDATE 3:論理、整数、複素数のサポートが追加されました。単位テストを追加しました。 http://www.mathworks.com/matlabcentral/fileexchange/34076
注:でFileExchangeに投稿されたすべての更なる更新についてhttps://github.com/johncolby/dputでgithubのを確認してください。
同等の機能はありませんが、作成するテンプレートは十分に単純なので、作成すると思います。変数の上をループして、データのタイプに応じて同等の文字列を書き込みます。
私はこのためにgitリポジトリを開始しましたので、自由にフォークして、さまざまなデータ型で私を助けてください。基本的な型が完了したら(double、char、struct、cell少なくとも)FileExchangeに投稿します。いくつかの例の変数
x = 1:10;
y = 3;
z = magic(3);
mystr = ['line1'; 'line2'];
mystruct = mystruct = struct('index', num2cell(1:3), 'color', {'red', 'blue', 'green'}, 'misc', {'string' 4 num2cell(magic(3))})
mycell = {1:3, 'test'; [], 1};
基本的な使い方から始め
https://github.com/johncolby/dput
です:
>> dput(x, y, z, mystr, mystruct, mycell)
ans =
x = reshape([1.000000 2.000000 3.000000 4.000000 5.000000 6.000000 7.000000 8.000000 9.000000 10.000000 ],[1 10]) ;
y = reshape([3.000000 ],[1 1]) ;
z = reshape([8.000000 3.000000 4.000000 1.000000 5.000000 9.000000 6.000000 7.000000 2.000000 ],[3 3]) ;
mystr = reshape('lliinnee12',[2 5]) ;
mystruct = struct('index',reshape({reshape([1.000000 ],[1 1]) reshape([2.000000 ],[1 1]) reshape([3.000000 ],[1 1]) },[1 3]),'color',reshape({reshape('red',[1 3]) reshape('blue',[1 4]) reshape('green',[1 5]) },[1 3]),'misc',reshape({reshape('string',[1 6]) reshape([4.000000 ],[1 1]) reshape({reshape([8.000000 ],[1 1]) reshape([3.000000 ],[1 1]) reshape([4.000000 ],[1 1]) reshape([1.000000 ],[1 1]) reshape([5.000000 ],[1 1]) reshape([9.000000 ],[1 1]) reshape([6.000000 ],[1 1]) reshape([7.000000 ],[1 1]) reshape([2.000000 ],[1 1]) },[3 3]) },[1 3]));
mycell = reshape({reshape([1.000000 2.000000 3.000000 ],[1 3]) reshape([ ],[0 0]) reshape('test',[1 4]) reshape([1.000000 ],[1 1]) },[2 2]) ;
次に、あなただけの再現性の例を作るために、オンラインでテキストを貼り付けることができ、そして他の人がすることができますMATLABにコピー/ペーストして変数を再生成します。ちょうどRのように!
問題は明らかに、動作しているMatlabのインストールを前提としています。 Matlabオブジェクトのデータを使ってRでサンプルを構築する場合は、明らかに "R.matlab"パッケージにreadMat
があります。 Matlabファイルからデータを抽出し(またはサーバー接続を使用して)、Rでdput
またはdump
を使用することができます。ただMATLAB内部
は、少なくともドキュメントの私の読書にaccoring、私は(そしてそれは、MATLAB行列にのみ適用してもよい)を参照してくださいオプションは
filename='asc.txt'
save(filename, 'mat', '-ascii')
type asc.txt
本当にオプション(ではないがもありますされますMatlab-writeおよびR-read機能があるCommon Data Formatを使用していることを意味します。
私はOPが実際にRの例を作成するのと同じ容易さでMATLABの例を構築したいと考えています。これは正しいです? –
MATLABの 'save()'には、実際には "各変数は2次元の2文字または文字配列でなければなりません"という制限があります。さらに、これらはペースト可能ではありませんので、通常のバイナリ.mat表現を使用するだけでは使いやすさを伝えるメリットはありません。 –
バイナリ表現も書いていますか? – Beginner
いいえ - Rのdput()と同じ容易性を持つ構造化されたデータを電子メールまたは投稿する簡単な方法を探しています –
@QuantGuy下の私の答えを見てください。あなたが必要とする他のデータタイプを教えてください。次にそれらを追加しようとします。ちなみに素晴らしいアイデアです! –