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,仅举几个可能的函数。

希望这会让你在那里设置!

于 2012-07-26T15:29:07.310 回答