首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab:顺序文件循环

Matlab:顺序文件循环
EN

Stack Overflow用户
提问于 2014-05-28 15:11:37
回答 1查看 318关注 0票数 0

我想循环下面的脚本,这样00001将依次增加(到00002,00003等等)。从1到100。00001出现了三次:在r5004b_00001.dat%% Initialize variables%% Allocate imported array to column variable names下:Angle00001Intensity00001

代码语言:javascript
复制
%% Initialize variables.
filename = sprintf('E:\XRD\Enamel\r5004b_00001.dat');
startRow = 5;

%% Format string for each line of text:
formatSpec = '%14f%f%[^\n\r]';

%% Open the text file.
fileID = fopen(filename,'r');

%% Read columns of data according to format string.
dataArray = textscan(fileID, formatSpec, 'Delimiter', '', 'WhiteSpace', '', 'HeaderLines' ,startRow-1, 'ReturnOnError', false);

%% Close the text file.
fclose(fileID);

%% Allocate imported array to column variable names
Angle00001 = dataArray{:, 1};
Intensity00001 = dataArray{:, 2};

%% Clear temporary variables
clearvars filename startRow formatSpec fileID dataArray ans;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-28 15:37:35

对于文件名,这是一个好主意,下面是解决方案(我只为清晰起见使用连接,sprintf当然足够了):

代码语言:javascript
复制
number = 3;
s = sprintf('%05d', number); % will produce '00003'
filename = ['E:\XRD\Enamel\r5004b_'  s '.dat'];

对于变量,别这么做。最好使用数组,或者,如果您真的喜欢有多个名称,则使用一个具有动态字段名的结构:

代码语言:javascript
复制
strct.(['angle' s]) = ...

如果你真的想实现你想要的,可以用

代码语言:javascript
复制
eval(['a' s ' = 1 + 1;'])
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23915458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档