如何将matlab输出txt结果另存

MATLAB:保存几个变量来“-7.3版”(HDF5)MAT文件似乎更快当使用“-追加”标志。怎么来的?
我的Matlab R2009b,我需要编写较大的脚本,匡威的大集合。Zip文件到V7.3沉闷文件(与相关HDF5-数据模型)的内容。读书是确定。这个问题是储蓄。而实际上是没有问题的。我的文件保存明智的命令。
我的问题是更多的意义:为什么我遵守下列惊人的(行为在Matlab?
让我们来看看我的问题一般。在目前这种情况下我会在测试生成一个输出:A-7.3版锐利的沉闷。这......沉闷的锋利'会发现40块暨各个变量.each变量'会是“block_NNN”从1到40和威尔的计算与结构域和块编号。字段包含480x240x65 UINT8的imagedata(这里只是随机漫步者兰迪)序列。场块编号包含的块号。
备注:在实际的脚本(我还没有完成),我会做在上面共有370 108GB的原始推动者的总转换。这就是为什么我很关注以下。
无论如何,首先我定义的一般变量:
%推动者和大小的假人循环:
num_blockCount=40;
num_blockLength=65;
然后,我哑编码发生器,具有形状和大小相同的实际原始数据是:
%generator空结构:
stu_data2disk=结构();
% CodeGo.net,环比块:
为num_k=1:num_blockCount
%generator块
=sprintf的('%03U block_,num_k);
%generator临时表结构对于当前块:
temp_stu_value=结构();
temp_stu_value。兰迪=(...
[0 255],...
num_blockLength],...
“UINT8'...
temp_stu_value.blockNo=num_k;
%使用动力场
。stu_data2disk(sprintf的('%03U block_,num_k))=temp_stu_
我现在有我所有的随机测试,漫步者在结构stu_data2disk。现在,我想保存两个一
让我们尝试优先个是简单的:
%男性搬运工(简单的):
DISP('保存搬运工直截了当的方式:')
学者converted.mat-结构-stu_data2disk 7.3版;
锋利的写入没有问题(286MB)。输出结果为:
保存搬运工简单的方法:
经过是14.004449秒。
确定-然后我说我想跟着男人,在40块。 :不是在块上面我环路,并进行追加顺序
使用追加%smarty率填料:
DISP('保存-追加')
为num_k=1:num_blockCount
%generator块
=sprintf的('%03U block_,num_k);
temp_str_appendToggle='';
菌丝(num_k& 1)
temp_str_appendToggle='追加';
%generator
temp_str_saveCommand=[...
'保存',...
“Converted_append.mat,...
“Stu_data2disk-结构','' ...
temp_str_appendToggle,'' ...
'V7.3',...
“;”......
的eval(temp_str_saveCommand);
并再次大幅SAVES很好(286MB)。输出结果为:
保存-附加:
经过是0.956968秒。
有趣的是,许多比较快?我的问题是为什么呢?
从输出dir converted*.mat:
converted.mat
converted_append.mat
2档(S)字节
这些文件是不相同的大小。而在Windows 7测试与FC透露...还有许多进制上的差异。移位器也许是先行者的原油-这没什么。
确实有这个想法是怎么回事呢?是附加的更优化的推动者结构吧?或者,也许Windows已经在缓存尖锐并获得persistent的性感更快?
我做了测试,读数从文件暨太好的努力。无需出示这里的数字附加版本是有点快(从长远来看虽然)。
[编辑]:我只是北格式标记(默认为-2013在我的系统),并没有多大的区别了:
保存搬运工直接的方式(-V7):
经过是13.092084秒。
保存-追加(-V7):
经过是14.345314秒。
[编辑]:我纠正上述错误。该统计是为-V6引擎,但我错了。我刚刚删除了标志和默认格式是V6引擎,击打它实际上是-2013。
我已经创建了新的考验我的统计为所有的格式安德鲁的罚款(所有格式都为随机测试推动者,现在,从锋利的阅读):
15:15:51.422:测试速度,格式=-V6引擎,R2009b上PCWIN,拱门=86,OS=微软Windows 7专业版6.1.7600 N / A结构7600
15:16:00.829:保存简单的方法:0358秒
15:16:01.188:字节追加:7,432秒
15:16:08.614:一大附加:1,161秒
15:16:24.659:测试速度,格式=2013,R2009b上PCWIN,拱门=86,OS=微软Windows 7专业版6.1.7600 N / A结构7600
15:16:33.442:保存简单的方法:12,884秒
15:16:46.329:字节追加:14,442秒
15:17:00.775:一个大的追加:13,390秒
15:17:31.579:测试速度,格式=7.3版,R2009b上PCWIN,拱门=86,OS=微软Windows 7专业版6.1.7600 N / A结构7600
15:17:40.690:保存简单的方法:13,751秒
15:17:54.434:字节追加:3,970秒
15:17:58.412:一大附加:6,138秒
而文件的大小:
converted_format-v6.mat
converted_append_format-v6.mat
converted_append_batch_format-v6.mat
converted_format-v7.mat
converted_append_format-v7.mat
converted_append_batch_format-v7.mat
converted_format-v7.3.mat
converted_append_format-v7.3.mat
converted_append_batch_format-v7.3.mat
9文件(S)字节
-V6似乎是最快的写作。也未在文件大小的任何inflate的差异。 HDF5确实有基本的内置据我知道的。
嗯,不可能在优化函数相关HDF5写?
目前,我仍然认为,相关HDF5写函数优化的完整的数据集添加到HDF5锋利(这是发生了什么当添加新的变数急剧-7.3)。我相信我已阅读,HDF5应在此非常优化的方式...虽然不能易趣萨里。
其他细节需要注意:
该行为是我们在下面安德鲁的回答看得很全身暨。这也似乎是相当显著哮喘发病率无论你是否在函数的局部范围,或在“全局”的i脚本的运行这些事情。我的优先个结果是从第i脚本,文件被写入到当前目录。我还是只能再现1秒的写入在我脚本-7.3。该函数的调用appearently增加开销。
本文地址 :CodeGo.net/254946/
-------------------------------------------------------------------------------------------------------------------------
1. 圣牛。我可以重现。尝试了单追加变化太大,它甚至更快。看起来像“,追加”奇迹般地樊HDF5为基础的占星家()速度提高30倍。我没有解释,但我想分享我的发现。
我结束了测试引脚的函数,重构它来标记明智的逻辑不可知的测试结构搬运工跳你可以在其他数据集运行它,并添加更多的诊断输出。
看不到大的无处不在。这是巨大的在我的64位XP框和32位Server 2003的箱子,大的在我的64位Windows 7中 CodeGo.net,不存在对32位XP的方块。 (虽然字节的附加Server 2003的停机损失巨大。)R2010b中在许多情况下慢。也许HDF5追加或男性是“理所当然岩石上较新的Windows版本。 (XP x64的服务器2003是真正的内核。)或者,也许它只是一台机器的配置差异。有XP的x64机器上的一个快速的RAID,以及32位XP具有比其他内存更少。您运行的是什么操作系统和体系结构?你可以试试这个重现吗?
19:36:40.289: Testing speed, format=-v7.3, R2009b on PCWIN64, arch=AMD64, os=Microsoft(R) Windows(R) XP Professional x64 Edition 5.2.3790 Service Pack 2 Build 3790
19:36:55.930: Save the simple way:
11.493 sec
19:37:07.415: Save using multiple append:
19:37:09.009: Save using one big append:
19:39:21.681: Testing speed, format=-v7.3, R2009b on PCWIN, arch=x86, os=Microsoft Windows XP Professional 5.1.2600 Service Pack 3 Build 2600
19:39:37.493: Save the simple way:
10.881 sec
19:39:48.368: Save using multiple append: 10.187 sec
19:39:58.556: Save using one big append:
11.956 sec
19:44:33.410: Testing speed, format=-v7.3, R2009b on PCWIN64, arch=AMD64, os=Microsoft Windows 7 Professional 6.1.7600 N/A Build 7600
19:44:50.789: Save the simple way:
14.354 sec
19:45:05.156: Save using multiple append:
19:45:11.474: Save using one big append:
20:03:37.907: Testing speed, format=-v7.3, R2009b on PCWIN, arch=x86, os=Microsoft(R) Windows(R) Server 2003, Enterprise Edition 5.2.3790 Service Pack 2 Build 3790
20:03:58.532: Save the simple way:
19.730 sec
20:04:18.252: Save using multiple append: 77.897 sec
20:05:36.160: Save using one big append:
这看起来很大。如果它拥有了其他组数据,我这一招在很多地方我自己。它编织了与eBay带来MathWorks公司,太。可以追加快捷的技术在正常保存或其它操作系统的版本,也?
下面是自包含的再现函数。
function out = reproMatfileAppendSpeedup(nPasses, tests, imax, formats)
%REPROMATFILEAPPENDSPEEDUP Show how -append makes v7.3 saves much faster
% Examples:
% reproMatfileAppendSpeedup()
% reproMatfileAppendSpeedup(2, [], 0, {'7.3','7','6'}); % low-entropy test
if nargin & 1 || isempty(nPasses); nPasses = 1; end
if nargin & 2 || isempty(tests); tests = {'basic','multiappend','bigappend'}; end
if nargin & 3 || isempty(imax);
imax = 255; end
if nargin & 4 || isempty(formats); formats = '7.3'; end % -v7 and -v6 do not show the speedup
tests = cellstr(tests);
formats = cellstr(formats);
fprintf('%s: Testing speed, imax=%d, R%s on %s\n',...
timestamp, imax, version('-release'), systemDescription());
tempDir = setupTempDir();
testData = generateTestData(imax);
testMap = struct('basic','saveSimple', 'multiappend','saveMultiAppend', 'bigappend','saveBigAppend');
for iFormat = 1:numel(formats)
format = formats{iFormat};
formatFlag = ['-v' format];
%fprintf('%s: Format %s\n', timestamp, formatFlag);
for iTest = 1:numel(tests)
testName = tests{iTest};
saveFcn = testMap.(testName);
te = NaN(1, nPasses);
for iPass = 1:nPasses
fprintf('%s: %-30s', timestamp, [testName ' ' formatFlag ':']);
matFile = fullfile(tempDir, sprintf('converted-%s-%s-%d.mat', testName, format, i));
feval(saveFcn, matFile, testData, formatFlag);
te(iPass) = toc(t0);
if iPass == nPasses
fprintf('%7.3f sec
%5.3f GB used %5.0f MB file %5.3f sec mean\n',...
te(iPass), physicalMemoryUsed/(2^30), getfield(dir(matFile),'bytes')/(2^20), mean(te));
fprintf('%7.3f sec
%5.3f GB used\n', te(iPass), physicalMemoryUsed/(2^30));
% Verify data to make sure we are sane
gotBack = load(matFile);
gotBack = rmfield(gotBack, intersect({'dummy'}, fieldnames(gotBack)));
if ~isequal(gotBack, testData)
fprintf('ERROR: Loaded data differs from original for %s %s\n', formatFlag, testName);
% Clean up
rmdir(tempDir, 's');
function saveSimple(file, data, formatFlag)
save(file, '-struct', 'data', formatFlag);
function out = physicalMemoryUsed()
out = NaN;
% memory() only works on Windows
[u,s] = memory();
out = s.PhysicalMemory.Total - s.PhysicalMemory.A
function saveBigAppend(file, data, formatFlag)
dummy = 0;
save(file, 'dummy', formatFlag);
fieldNames = fieldnames(data);
save(file, '-struct', 'data', fieldNames{:}, '-append', formatFlag);
function saveMultiAppend(file, data, formatFlag)
fieldNames = fieldnames(data);
for i = 1:numel(fieldNames)
if (i & 1); appendFlag = '-append'; appendFlag = ''; end
save(file, '-struct', 'data', fieldNames{i}, appendFlag, formatFlag);
function testData = generateTestData(imax)
nBlocks = 40;
blockSize = [65 480 240];
for i = 1:nBlocks
testData.(sprintf('block_%03u', i)) = struct('blockNo',i,...
'frames', randi([0 imax], blockSize, 'uint8'));
function out = timestamp()
%TIMESTAMP Showing timestamps to make sure it is not a tic/toc problem
out = datestr(now, 'HH:MM:SS.FFF');
function out = systemDescription()
platform = [system_dependent('getos'),' ',system_dependent('getwinsys')];
elseif ismac
[fail, input] = unix('sw_vers');
platform = strrep(input, 'ProductName:', '');
platform = strrep(platform, sprintf('\t'), '');
platform = strrep(platform, sprintf('\n'), ' ');
platform = strrep(platform, 'ProductVersion:', ' Version: ');
platform = strrep(platform, 'BuildVersion:', 'Build: ');
platform = system_dependent('getos');
platform = system_dependent('getos');
arch = getenv('PROCESSOR_ARCHITEW6432');
if isempty(arch)
arch = getenv('PROCESSOR_ARCHITECTURE');
[~,sysMem] = memory();
sysMem.PhysicalMemory.Total = NaN;
out = sprintf('%s, arch=%s, %.0f GB, os=%s',...
computer, arch, sysMem.PhysicalMemory.Total/(2^30), platform);
function out = setupTempDir()
out = fullfile(tempdir, sprintf('%s - %s', mfilename, datestr(now, 'yyyymmdd-HHMMSS-FFF')));
mkdir(out);
编辑:我修改了再现函数,添加多个迭代和它的男性样式,锐利的甲酸,和IMAX的兰迪generator。
我认为文件系统缓存是很重要的factor,以快速追加行为。当我背在运行行中的串并观看在Process Explorer的系统信息,其中大部分是在第二,与使用由夫妻GB的迅速爬升。然后每打过去,写摊位只需20秒或30秒,和身体缓慢提升至约当它开始。我认为,Windows正在缓存大量写入的RAM和沮丧-FAN追加更愿意跳回来。但摊销包括那些小摊仍比基本的读写速度快了很多,
顺便说一句,做多遍了几个小时后,我有硬再现原来的时间安排。
通过@AndrewJanke的数据是非常有趣的.a件事是三太尖锐甲酸率有很大的不同:虽然V6是版是不同的(HDF5标准格式与优化的定制Matlab的格式)。
至于男人,全在一次增值经销商比。追加-一个variant-在-的错,我也对结果感到惊讶...
万一它更新到别人。我发现Matlab的错误784028这表明,对于-append行为是固定的2012A。从测试我的系统上,这是真实的情况,发生压缩变量& 10000字节追加的或,并且从未发生过较小的变量。
不幸的是,另一面是,那里没有出现没有办法的所有费率-v7.3文件。
本文标题 :MATLAB:保存几个变量来“-7.3版”(HDF5)MAT文件似乎更快当使用“-追加”标志。怎么来的?
本文地址 :CodeGo.net/254946/
Copyright (C) 2014 CodeGo.net 沪ICP备号 联系电邮: (#=@)第四章 matlab的程序设计和调试
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
第四章 MATLAB的程序设计和调试
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口查看: 3636|回复: 3
阅读权限32威望0 级论坛币3326 个学术水平23 点热心指数23 点信用等级8 点经验11023 点帖子280精华0在线时间1804 小时注册时间最后登录
积分 2399, 距离下一级还需 1201 积分
权限: 自定义头衔, 签名中使用图片, 设置帖子权限, 隐身, 设置回复可见
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡, 显身卡, 匿名卡, 抢沙发, 提升卡, 沉默卡下一级可获得
道具: 千斤顶
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
是程序运行后输出在屏幕上的结果,像stata的log那种。(不是在命令窗口输入命令后出的结果,这个用diary命令保存)
载入中......
阅读权限32威望0 级论坛币3326 个学术水平23 点热心指数23 点信用等级8 点经验11023 点帖子280精华0在线时间1804 小时注册时间最后登录
积分 2399, 距离下一级还需 1201 积分
权限: 自定义头衔, 签名中使用图片, 设置帖子权限, 隐身, 设置回复可见
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡, 显身卡, 匿名卡, 抢沙发, 提升卡, 沉默卡下一级可获得
道具: 千斤顶
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
本帖最后由 spy1889 于
21:55 编辑
用diary可以~
diary('output.txt');
网上说用fopen也可以,实验没有成功。。。
阅读权限100威望14 级论坛币 个学术水平48 点热心指数61 点信用等级21 点经验58023 点帖子867精华0在线时间4308 小时注册时间最后登录
积分 12313, 距离下一级还需 5987 积分
权限: 自定义头衔, 签名中使用图片, 设置帖子权限, 隐身, 设置回复可见, 签名中使用代码
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡, 显身卡, 匿名卡, 抢沙发, 提升卡, 沉默卡, 千斤顶, 变色卡下一级可获得
道具: 置顶卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
fopen 是打开文件读写的操作,并不是完整意义上的logging
阅读权限100威望2 级论坛币1614 个学术水平57 点热心指数67 点信用等级35 点经验480327 点帖子1103精华0在线时间15064 小时注册时间最后登录
积分 72784, 距离下一级还需
权限: 自定义头衔, 签名中使用图片, 设置帖子权限, 隐身, 设置回复可见, 签名中使用代码
道具: 彩虹炫, 雷达卡, 热点灯, 雷鸣之声, 涂鸦板, 金钱卡, 显身卡, 匿名卡, 抢沙发, 提升卡, 沉默卡, 千斤顶, 变色卡, 置顶卡
购买后可立即获得
权限: 隐身
道具: 金钱卡, 雷鸣之声, 彩虹炫, 雷达卡, 涂鸦板, 热点灯
matlab里的log就是diary
论坛好贴推荐查看: 1187|回复: 0|关注: 0
怎么将matlab输出数据保存为tecplot画图的形式
fid1=fopen('U0.txt','wt');
count=fprintf(fid1,' %f %f %f %f %f %f \n',[X(:),Y(:),rho(:),u(:),v(:),p(:)]')
fclose(fid1);
这个程序能保存,但在tecplot里不能画出等值线
Powered byMATLAB程序设计MATL
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
MATLAB程序设计
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口}

我要回帖

更多关于 matlab输出语句 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信