0

こんにちは。現在、ワークスペースから2つの変数をファイルに保存する方法を見つけようとしています。元の日付と現在の日付を使用してファイル名をまとめたい。

変数からの最大値のみが必要なので、次のようになります。

max(streaking)

max(tap_total)

元のファイル名は次のとおりです。

3_FM001_02_05460 $ BandP $ 64_24000_FWD_1x1_PRI_PRI_PRI_PRI_15_17_ActivePixelMeans.csv

私が使用したいこの元のファイル名の唯一の部分は次のとおりです。

3_FM001_02_05460$BandP$64_24000_FWD_1x1

これらはテキストファイルまたはスプレッドシートに保存できますが、問題ありません。

新しいファイル名の例は次のようになります。

3_FM001_02_05460$BandP$64_24000_FWD_1x1_7-26-2012

また、

ファイルで何かを実行して、どの変数がどれであるかを表示できる場合、たとえば、次のようになります。

Streaking: 1.272  % this would come from the variable max(streaking)

Tap_Total: 2.252  % this would come from the varaible max(tap_total)

編集:

% Construct a questdlg with three options

choice = questdlg('Would you like to save?', ...

'Save Options', ...

'Yes','No','Cancel','Cancel');

% Handle response

switch choice

case 'Yes'

    disp([choice ' processing.'])

    save_option = 1;
case 'No'
    disp([choice ' processing.'])
    save_option = 0;
case 'Cancel'
    disp('Canceled.')
    save_option = 2;
end

file_to_get = evalin( 'base', 'file_to_get' );
streaking = evalin( 'base', 'streaking' );
tap_total = evalin( 'base', 'tap_total' );

if save_option == 0
elseif save_option == 1

    max_streak = max(streaking);
    max_tap = max(tap_total);
    str_streak = mat2str(max_streak);
    str_tap = mat2str(max_tap);
    fname = file_to_get;
    pruned_fname = regexprep(fname,'_PRI(\w*).(\w*)','');
    new_fname = [pruned_fname '_' date '.csv'];
    path1 = '\\pfile01thn\bbruffey$\My Documents\analysis data\Banding and Streaking Results';
    fid = fopen([path1 new_fname], 'w');
    fprintf(fid,['Max Banding: %s\nMax Streaking: %s'],str_tap,str_streak)
    fclose(fid);
elseif save_option == 2
end
4

1 に答える 1

5

これは、regexprepコマンドを使用して元のファイル名を削除するのに最適な場所です。

例:

fname = '3_FM001_02_05460$BandP$64_24000_FWD_1x1_PRI_PRI_PRI_PRI_15_17_ActivePixelMeans.csv';
pruned_fname = regexprep(fname,'_PRI(\w*).(\w*)','');

pruned_fname =

3_FM001_02_05460$BandP$64_24000_FWD_1x1

regexprepここで使用したコマンドについてのメモです。これは、ここで指定したファイル名に固有です。最初の後にすべてをトリミングしたいように見えるので、_PRI私はタグを使用しました 。(\w*)これは、任意の組み合わせ[a-z A-Z _ 0-9]が続くことができることを意味します。これはファイル名で.あるため、ピリオドを追加し、それに続いて別のピリオドを追加(\w*)してcsvを完成させる理由があることに注意してください。これらの種類の演算子の詳細については、こちらをご覧ください。

これで、必要pruned_fnameなものを簡単に追加できます。したがって、スペースにアンダースコアを付けて日付を追加する場合は、次のようにします。

new_fname = [pruned_fname '_' date '.csv'];
new_fname =

3_FM001_02_05460$BandP$64_24000_FWD_1x1csv_26-Jul-2012.csv

これで、ファイルを開いて書き込む必要があります。保存したい場所にパスを追加する必要があるかもしれませんpath。今はそれを呼び出します。それは次のようなものになりますC:\Documents\

fid = fopen([path new_fname], 'w')

これで、fid書き込みたいファイルのIDが得られました。これは新しいファイルである必要があります。そうでない場合は、この方法でファイルの内容を上書きします。ただ注意してください=)

fwrite fprintf次に、いくつかの可能な関数に名前を付けるために、を使用してこれらの最初の2行をファイルに書き込むことができます。

うまくいけば、それでセットアップができます!

于 2012-07-26T15:29:07.310 に答える