在第2行声明变量(filename
)并在第4行使用它时会出现错误。如果我使用data.temp(12,:)
,程序可以正常运行,但如果我输入filename = temp
和index = 12
,然后运行data.filename(index,:)
,就会出现错误。请有人帮帮我
这是具体的代码:
data = importdata('check.mat');filename = input('输入文件名: ','s'); index = input('输入文件索引: '); row = data.filename(index,:);
引用不存在的字段 ‘filename’
回答:
你错误地使用了结构体。
当使用字符串访问结构体时,你需要使用getfield
,因为fieldname
包含一个字符串,但当你使用data.fieldname
时,你实际上并没有使用点后fieldname
的值,而是在尝试访问data
中不存在的字段fieldname
。
相反,应该这样做:
row=getfield(data, filename);