我创建了一个名为pattern的空数组,现在我正在读取一个生成字符串的文件,每个字符串我想要保存在变量p中。我希望模式显示在MATLAB命令窗口中。分配给P的行应以数组模式存储。
pattern=[]
while ~isnan(l)
p=fgetl(fp);
pattern=(pattern,p[])
end
你能帮忙吗,我觉得我做错了分配模式。因为它不会得到结果
pattern = [];
while(~feof(fid))
l = fgetl(fid);
idx = regexp(l, '^information$');
if size(idx,1)>0
l = fgetl(fid);
while ~isnan(l)
p = fgetl(fid);
end
end
end
以上是代码
答案 0 :(得分:2)
您需要使用cells,因此正确的括号类型为{}
,而不是[]
。当整个文本保存在单元格数组中时,您可以使用cellfun
和disp
的组合来显示它。
这样的事情应该有效:
fid = fopen('textfile.txt');
p = fgetl(fid);
pattern = {p}
while ischar(p)
p = fgetl(fid);
pattern = [pattern; {p}];
end
fclose(fid);
cellfun(@disp, pattern)
答案 1 :(得分:1)
如果您的字符串长度不同,那么您应该将它们保存在单元格数组中。
%// create empty cell array
pattern=cell(0)
while ~isnan(l)
p=fgetl(fp);
%// save in cell array
pattern{end+1} = p
%// show in command window
disp(p)
end
现在您可以使用模式{1}访问第一个模式,使用模式{2} ...
访问第二个模式