我已经创建了一个具有名称模式的空数组,现在我正在读取一个生成字符串的文件,我想要将每个字符串保存在变量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
以上是代码
您需要为此使用单元格,因此括号的正确类型是{}
,而不是[]
。当整个文本保存在单元格数组中时,您可以使用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)
如果你的字符串有不同的长度,那么你应该把它们保存在一个单元格数组中。
%// 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
现在你可以用pattern{1}访问你的第一个模式,用pattern{2}访问第二个模式…