也许问题很奇怪,但无论如何...... 如何读取变量 number_of_plots 或颜色的值(字符串或数字)? (我想使用变量/数组图选项来解决这个问题)
我的代码:
diagramoptions = [];
wholecontent = fileread('aaa.txt')
sections = regexp(wholecontent, '\*+([^*]+)\*+([^*]+)', 'tokens')
for section = sections
switch(strtrim(section{1}{1}))
case 'Diagram Options' %Diagram Options -> siehe meine Gliederung im .txt file
keyvalues = regexp(section{1}{2}, '([^\n\r=]+)=([^\n\r=]+)', 'tokens')%\n -> new line; \r carriage return
diagramoptions = cell2table(vertcat(keyvalues{:}), 'VariableNames', {'Key', 'Value'})
otherwise
warning('Unknown section: %s', section{1}{1})
end
end
openvar diagramoptions
我的输入" aaa.txt":
******************* Diagram Options****************
number_of_plots=4
header=Number of cycles
color=red
xlabel= RPM
ylabel= degree
答案 0 :(得分:1)
这是一种天真的做法......它不能很好地扩展,并且它做了不必要的工作..但它是你需要建立的东西。
fileId = fopen('test.txt');
c = textscan(fileId, '%s', 'Delimiter', '=');
fclose(fileId);
for i = 1: length(c{1,1})
if (strcmp(c{1,1}{i,1}, 'number_of_plots'))
number_of_plots = c{1,1}{i+1,1};
elseif strcmp(c{1,1}{i,1}, 'color')
color = c{1,1}{i+1,1};
end
end
因此,阅读文件并在=
分隔即可让您知道任何匹配,例如number_of_plots
位于下一行。所以只需循环然后挑出来。
答案 1 :(得分:0)
您可以使用函数.select2-container--open {
right: 0 !important;
left: auto !important;
}
来运行.txt文件,因为它是.m文件:
eval
但在这种情况下,您需要在aaa.txt中添加一些引号,以便matlab可以创建变量:
fid = fopen('aaa.txt') %open the file
tline = fgetl(fid); %read the first line
while ischar(tline)
if ~isempty(strfind('tline','number_of_plots')) | ~isempty(strfind('tline','color='))
try %if it's possible matlab execute this line
eval(tline)
end
end
tline = fgetl(fid); %read the next line
end
fclose(fid)