函数将文本插入文件。 MATLAB

时间:2013-11-22 02:45:04

标签: matlab text compiler-errors

我目前正在处理该功能

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)));

任何有根据的猜测都可能出错?

1 个答案:

答案 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}。