我正在从文件中读取输入,并将其导入到我的数据中以在Matlab中运行:
parts = strread(tline,'%s','delimiter',';')
employee(i).name = parts(1);
employee(i).salary= str2double(parts(2));
然后我尝试将其打印出来:
for i = 1:3
fprintf('salary: %.2f\n',employee(i).salary);
fprintf('employee name: %s\n',employee(i).name);
end
薪水打印没有问题。但是对于变量“名称”,它给出了一个错误:
Error using fprintf
Function is not defined for 'cell' inputs.
fprintf('employee name: %s\n',employee(i).name);
我寻找了其他一些示例:
但是,只有字符串不起作用的情况下,没有什么可以解决的。
我没有明确地将数据声明为struct,即在代码中没有“ struct”一词,但Matlab显然自动将其理解为“结构数组”。
有什么提示可能会在这里丢失吗?
高度赞赏所有评论!
问题在于这employee(k).name
是一个单元格(用选中iscell(employee(1).name)
),格式字符串%s
不知道如何处理。
它是一个单元格的原因是因为strread
返回了一个单元格数组。要从结果(parts
)中获取元素,您想使用{}
返回字符串而不是()
返回单元格的索引。
employee(i).name = parts{1};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句