我目前正在处理该功能
function[check] = store( filename, persons )
fid = fopen(filename,'w');
if exist('fid')
check = true;
else
check = false;
end
for i=1:length(persons)
sprintf(fid, '%s\n',serialize_person(persons(i)));
end
end
Serialize_person返回< 1x(length)char>。 如果商店函数创建名为'filename'的.txt文件并将serialize_person(persons(i))放在该文本文件的第i行上,我想要的是什么。
但是,即使serialize_person本身运行正常,当我尝试运行store函数时,我收到错误消息
Attempt to reference field of non-structure array.
Error in serialize_person (line 3)
out=sprintf ( '<%s>#%s#<%i>\n' , person.name, serialize_date( person.date_of_birth),
person.phone );
Error in store (line 14)
sprintf(fid, '%s\n',serialize_person(persons(i)));
任何有根据的猜测都可能出错?
答案 0 :(得分:0)
function[check] = store( filename, persons )
fid = fopen(filename,'w');
if exist('fid')
check = true;
else
check = false;
end
for i=1:length(persons)
sprintf(fid, '%s\n',serialize_person(persons{i}));
end
end
这是一个被忽视的简单错误之一。人是结构的单元格,每个结构都可以放入serialize_person中。因此问题的解决方案只是在for循环中将(i)更改为{i}。