Matlab循环中的覆盖数据
我得到了GUI中按钮的以下代码,其中它要求一对坐标X,Y,保存在向量Z中 我希望它以不同的名称保存不同的.mat文件,在本例中,在特定的迭代次数3中,每次保存Z值时都会清除编辑框。问题是它会覆盖过去的值,只保留第一个文件中的最后一个值,并在其他文件上生成NaN 任何帮助都将不胜感激Matlab循环中的覆盖数据,matlab,user-interface,loops,Matlab,User Interface,Loops,我得到了GUI中按钮的以下代码,其中它要求一对坐标X,Y,保存在向量Z中 我希望它以不同的名称保存不同的.mat文件,在本例中,在特定的迭代次数3中,每次保存Z值时都会清除编辑框。问题是它会覆盖过去的值,只保留第一个文件中的最后一个值,并在其他文件上生成NaN 任何帮助都将不胜感激 function pushbutton1_Callback(hObject, eventdata, handles) folder=pwd;
function pushbutton1_Callback(hObject, eventdata, handles)
folder=pwd; %Current folder
x=str2double(get(handles.edit1,'String'));
y=str2double(get(handles.edit2,'String'));
z=[x y];
k=1;
ng=3;
while k<=ng
baseFileName=sprintf('data%02d.mat',k);
fullFileName=fullfile(folder,baseFileName);
save(fullFileName);
S.(sprintf('z%d',k))=z;
save(baseFileName,'-struct','S');
k=k+1;
if k<=ng;
set(handles.edit1,'String','')
set(handles.edit2,'String','')
x=str2double(get(handles.edit1,'String'));
y=str2double(get(handles.edit2,'String'));
z=[x y];
end
end
在一次回调中,z的值不变。第二,我尝试了你保存文件的代码,它对我来说很好。请尝试只执行此代码:同时感谢你的回复。如果我只使用您建议的代码,那么我的3个文件的值与上次输入的值相同,而不是保存引入的每一对坐标,因为变量z在此函数调用中没有更改。对不起,S.sprintf'z%d',k=z;savebaseFileName、-struct、-S;够了吗?我是否需要在循环中更改变量名以外的内容来保存所有值?