Matlab 使用部分文件名和日期保存文件
您好,我现在正试图找到一种方法,将我的工作区中的2个变量保存到一个文件中。我希望使用原始日期和当前日期将文件名放在一起 我只需要变量的最大值,因此:Matlab 使用部分文件名和日期保存文件,matlab,date,file-io,save,filenames,Matlab,Date,File Io,Save,Filenames,您好,我现在正试图找到一种方法,将我的工作区中的2个变量保存到一个文件中。我希望使用原始日期和当前日期将文件名放在一起 我只需要变量的最大值,因此: max(streaking) 及 原始文件名为: 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 这些可以保存在
max(streaking)
及
原始文件名为:
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
new_fname = [pruned_fname '_' date '.csv'];
new_fname =
3_FM001_02_05460$BandP$64_24000_FWD_1x1csv_26-Jul-2012.csv
而且
如果可以在文件中执行某些操作以显示哪个变量是哪个,例如:
Streaking: 1.272 % this would come from the variable max(streaking)
Tap_Total: 2.252 % this would come from the varaible max(tap_total)
编辑:
这将是使用
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
命令。这是您在此处提供的文件名所特有的。由于第一次\u PRI
之后,您似乎想要修剪所有内容,因此我使用了一个标记(\w*)
,这意味着[a-z a-z\u0-9]的任何组合都可以遵循。请注意,由于这是一个文件名,因此有一个
,因此我在其中添加了一个句点,并在其后添加了另一个(\w*)
,以完成csv。你可以找到更多关于这类操作符的信息
现在您有了pruned\u fname
,只需向其中添加您想要的内容即可。因此,如果您想添加带有下划线的日期,只需执行以下操作:
3_FM001_02_05460$BandP$64_24000_FWD_1x1_7-26-2012
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
将前两行写入文件,仅列举几个可能的函数
希望这会让你在那里安装 这将是使用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
命令。这是您在此处提供的文件名所特有的。由于第一次\u PRI
之后,您似乎想要修剪所有内容,因此我使用了一个标记(\w*)
,这意味着[a-z a-z\u0-9]的任何组合都可以遵循。请注意,由于这是一个文件名,因此有一个
,因此我在其中添加了一个句点,并在其后添加了另一个(\w*)
,以完成csv。你可以找到更多关于这类操作符的信息
现在您有了pruned\u fname
,只需向其中添加您想要的内容即可。因此,如果您想添加带有下划线的日期,只需执行以下操作:
3_FM001_02_05460$BandP$64_24000_FWD_1x1_7-26-2012
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
将前两行写入文件,仅列举几个可能的函数
希望这会让你在那里安装 好的,我只是使用我正在创建的workspace变量“file_to_get”来补充fname。而且这个效果非常好。它完美地创建了新的文件名。它只是告诉我,我需要使用fopen,当我需要的时候。我已经添加了我认为正确的路径。这是在尝试使用fprintf时发生的。当我尝试使用fwrite时,它不会保存任何内容,但不会给出任何错误。如果您用如何使用fwrite
和fprintf
更新您的问题,我可能会更好地帮助您。请举一个例子,说明你是如何在原始问题末尾提到的两行信息中写作的。您可能离得不太远。请参见我的编辑,我正在尝试使用一个选项框提示用户是否希望保存。您只需在路径末尾添加另一个\(斜杠)
。然后它应该保存到您想要的位置。所以它看起来是这样的:path1='\\pfile01thn\bbruffey$\My Documents\analysis data\Banding and striking Results\'
Ahh,这是有意义的,这是一件很小的事情,需要仔细看看哈哈,感谢againOkay,所以我只是使用我正在创建的workspace变量“file\u to\u get”来补充fname。而且这个效果非常好。它完美地创建了新的文件名。它只是告诉我,我需要使用fopen,当我需要的时候。我已经添加了我认为正确的路径。这是在尝试使用fprintf时发生的。当我尝试使用fwrite时,它不会保存任何内容,但不会给出任何错误。如果您用如何使用fwrite
和fprintf
更新您的问题,我可能会更好地帮助您。请举一个例子,说明你是如何在原始问题末尾提到的两行信息中写作的。您可能离得不太远。请参见我的编辑,我正在尝试使用一个选项框提示用户是否希望保存。您只需在路径末尾添加另一个\(斜杠)
。然后它应该保存到您想要的位置。所以它看起来是这样的:path1='\\pfile01thn\bbruffey$\My Documents\analysis da