MATLAB 数据文件格式
Posted
技术标签:
【中文标题】MATLAB 数据文件格式【英文标题】:MATLAB data file formatting 【发布时间】:2012-02-17 15:42:58 【问题描述】:我很难理解在 MATLAB 中创建数据文件的适当代码/格式。出于某种原因,这个特殊的任务真的让我很困惑。
所以我有这个脚本:
function semjudge
SubNum = ('Subject Number: ','s');
files = dir(fullfile('pictures','*.png'));
nFiles = numel(files);
combos = nchoosek(1:nFiles, 2);
index = combos(randperm(size(combos, 1)), :);
picture1 = files(index(1)).name;
picture2 = files(index(2)).name;
image1 = fullfile('pictures',picture1);
image2 = fullfile('pictures',picture2);
subplot(1,2,1); imshow(image1); title(picture1);
subplot(1,2,2); imshow(image2); title(picture2);
uicontrol('Style', 'text',...
'Position', [200 45 200 20],...
'String','How related are these pictures?');
uicontrol('Style', 'text',...
'Position', [50 45 100 20],...
'String','Unrelated');
uicontrol('Style', 'text',...
'Position', [450 45 100 20],...
'String','Closely related');
uicontrol('Style','pushbutton','String','Next Trial',...
'Position', [250 350 100 20],...
'Callback','clf; semjudge()');
h = uicontrol(gcf,...
'Style','slider',...
'Min' ,0,'Max',50, ...
'Position',[100 20 400 20], ...
'Value', 25,...
'SliderStep',[0.02 0.1], ...
'BackgroundColor',[0.8,0.8,0.8]);
set(gcf, 'WindowButtonMotionFcn', @cb);
lastVal = get(h, 'Value');
function cb(s,e)
if get(h, 'Value') ~= lastVal
lastVal = get(h, 'Value');
fprintf('Slider value: %f\n', lastVal);
end
end
end
相当简单的小脚本。它从一个文件夹中随机抽取两张图片,并要求用户进行比较。我想要的只是一个标有主题编号的数据文件,例如:
fid = fopen(strcat('data','_',SubNum,'.txt'),'a');
数据文件本身我想包含每张图片的标题,以及滑块分配给它的值。因此,当用户按下“Next Trial”按钮时,它会保存 title(picture1) 和 title(picture2) 以及 lastVal。
我意识到这是一个非常基本的问题,但我发现有关数据文件的 MathWorks 文档非常混乱,我不明白该怎么做。
【问题讨论】:
【参考方案1】:如果我正确理解您的问题,它应该是这样的(查看FPRINTF 文档了解详细信息):
fid = fopen(strcat('data','_',SubNum,'.txt'),'a');
fprintf(fid, '%s\t%s\t%f\n', picture1, picture2, lastVal)
fclose(fid);
根据您的代码,文件名会......有点奇怪。比如'data_Subject Number: s.txt'
(我希望第二行的s
实际上是变量号),但是你可以改变它。
如果要将每个变量打印为单行,可以将\t
替换为\n
。
【讨论】:
为什么使用WindowButtonMotionFcn
事件而不是Slider回调函数?喜欢这里:mathworks.com/help/techdoc/creating_guis/…
没关系,错误已修复;这只是代码某行的错字。谢谢!以上是关于MATLAB 数据文件格式的主要内容,如果未能解决你的问题,请参考以下文章