matlab文本框中如何读取一行数据显示一行数据,读取第二行再接下去显示第二行 matlab中怎么解决读取第一行末尾和第二行开头数字的情况
Matlab \u91cc txt\u683c\u5f0f\u8bfb\u53d6\u65f6\uff0c\u6211\u8981\u4ece\u7b2c\u4e8c\u884c\u5f00\u59cb\u8bfb\uff0c\u56e0\u4e3a\u7b2c\u4e00\u884c\u4e0d\u662f\u6570\u636e\uff0c\u662f\u4e9b\u53d8\u91cf\u540d\uff1b\u4ee3\u7801\u600e\u4e48\u5199 \uff1f\u5982\u679c\u6570\u636e\u6587\u4ef6\u683c\u5f0f\u4e0d\u590d\u6742\u7684\u8bdd\uff0c\u7528importdata\u6bd4\u8f83\u7b80\u5355\uff0c\u80fd\u591f\u81ea\u52a8\u8bc6\u522b\u6570\u636e\u3002\u5047\u8bbe\u6587\u4ef6\u540d\u4e3adata.txt\uff0c\u4ee3\u7801\u5982\u4e0b\uff1a
a=importdata('data.txt');
data=a.data;
\u5982\u679c\u6bd4\u8f83\u590d\u6742\uff0cimportdata\u8bc6\u522b\u4e0d\u51c6\u786e\u7684\u8bdd\uff0c\u53ef\u4ee5\u7528textscan\u51fd\u6570\uff08MATLAB6.5\u6ca1\u6709\u8fd9\u4e2a\uff09\u3002\u5047\u8bbe\u6587\u4ef6\u540d\u4e3adata.txt\uff0c\u6587\u4ef6\u683c\u5f0f\u5982\u4e0b\uff1a
2011-03-17 21:45:11
AUV1 COMPASS
TIME HEADING PITCH ROLL
21:45:14.235 245.0 -8.6 32.6
21:45:14.455 245.6 -8.5 32.8
21:45:14.636 246.0 -8.4 32.7
21:45:14.856 246.6 -8.2 33.1
\u4ee3\u7801\u5982\u4e0b\uff1a
fid=fopen('data.txt');
data=textscan(fid,'%s %f %f %f\n','HeaderLines',3);
%%\u540e\u9762\u8868\u793a\u4f60\u8981\u8bfb\u53d6\u7684\u683c\u5f0f\uff0c%s\u662f\u5b57\u7b26\uff0cf\u662f\u6d6e\u70b9\u6570\uff0c\u4e2d\u95f4\u7528\u7a7a\u683c\u5206\u5f00\uff0c\u2018HeaderLines\u2019\u540e\u9762\u7684\u6570\u5b57\u8868\u793a\u6587\u4ef6\u5934\u884c\u6570\uff0c\u8fd9\u91cc\u662f3\u884c
fclose(fid);
>> y = textread('data.txt')
y =
1 1 1
2 1 3
3 1 2
4 1 3
>> a = y(1,end)
a =
1
>> b = y(2,1)
b =
2
存在问题:
1、每一步循环都把新读入的行赋值给data,而data同时又要用于保存多行的数据,变量的用途冲突,根本就不能把前面读入的内容保留下来。
2、设置显示的时候,只显示了data(n,:),也就是最新读入的那行。
修改建议:
把读入的数据保存在cell数组中,另外,由于读数据的速度很快,要想“一行一行慢慢显示”,需要在每一步都设置暂停。
参考代码:
[filename,filepath]=uigetfile('*.txt','select input file');
file=[filepath filename];
fid=fopen(file,'r');
n=1;
ed=uicontrol('style','edit','Units','normal','pos',[0.1 0.1 0.5 0.5],'max',2,'min',0);
Data = {};
while feof(fid)~=1
data=fgetl(fid);
Data{n}=data;
set(ed,'str',Data)
n=n+1;
pause(0.2)
end
存在问题:
1、每一步循环都把新读入的行赋值给data,而data同时又要用于保存多行的数据,变量的用途冲突,根本就不能把前面读入的内容保留下来。
2、设置显示的时候,只显示了data(n,:),也就是最新读入的那行。
修改建议:
把读入的数据保存在cell数组中,另外,由于读数据的速度很快,要想“一行一行慢慢显示”,需要在每一步都设置暂停。
参考代码:
[filename,filepath]=uigetfile('*.txt','select input file');file=[filepath filename];fid=fopen(file,'r');n=1;ed=uicontrol('style','edit','Units','normal','pos',[0.1 0.1 0.5 0.5],'max',2,'min',0);Data = {};while feof(fid)~=1 data=fgetl(fid); Data{n}=data; set(ed,'str',Data) n=n+1; pause(0.2)end
是不是你的edit box太小了,把它在竖直方向上拉长一点试试
绛旓細鎴戝湪鍑哄樊锛屾墜澶存病鏈matlab杞欢 鍙互璇曚竴涓媑et锛坔andles.edit1,'string'锛夊緱鍒扮殑鏄粈涔堬紝鐒跺悗鍐嶅喅瀹氱敤浠涔堝嚱鏁板垽鏂 鍙兘寰楀埌鐨勬槸涓涓猚ell鎴栬100涓┖鏍肩殑瀛楃涓诧紝璇曚竴涓嬶紝鍔犳补
绛旓細'txt-file(*.txt)';'*.*','All the files(*.*)'},'Choose a file');if isequal(filename,0)||isequal(pathname,0);h=msgbox ('Please choose a file!','Warning','warn');return;else data=importdata([pathname '/' filename]);str=num2str(data)set(handles.edit1,'string')...
绛旓細1銆侀鍏堟墦寮matlab杩涘叆杞欢涓婚〉闈紝鍦ㄤ富椤甸潰鎵惧埌璁剧疆鎸夐挳锛岀偣鍑昏繘鍏ャ2銆佸叾娆″湪璁剧疆閲岄潰鎵惧埌鏂囨湰璁剧疆锛岀偣鍑昏繘鍏ユ枃鏈缃3銆佹渶鍚庡湪鏂囨湰璁剧疆椤甸潰杩涜璁剧疆闈欐鏂囨湰妗涓婁笅灞呬腑鍗冲彲銆
绛旓細set(handles.text1,'string',string);
绛旓細鍦╬ushbutton涓啓鍏ュ涓嬭鍙ュ氨鍙皟鐢ㄤ簡 a= str2double(get(handles.edit1, 'String'));
绛旓細鍙傛暟鍊笺傚缓绔嬫暟缁勬渶鐩存帴鐨勬柟娉曟槸鍦ㄥ懡浠ょ獥鍙g洿鎺ヨ緭鍏ユ暟缁勶紝鏁扮粍鍏冪礌闂寸敤绌烘牸锛岄楀彿鎴栧垎鍙峰垎闅斻matlab鏁扮粍鍦ㄤ竴涓鏂囨湰妗鏄剧ず鍙傛暟鍊硷紝琛ㄧずmatlab鏁扮粍鍙傛暟鍊肩殑澶у皬銆傛暟缁勬槸MATLAB涓鐨勫熀鏈瀯浠讹紝鏁扮粍涓殑鍗曚釜鏁版嵁椤圭О涓哄厓绱犮備换浣曞彉閲忓湪MATLAB涓兘鏄互鏁扮粍褰㈠紡瀛樺偍鍜岃繍绠楃殑銆
绛旓細function popupmenu1_Callback(hObject, eventdata, handles)hObject handle to popupmenu1 (see GCBO)eventdata reserved - to be defined in a future version of MATLAB handles structure with handles and user data (see GUIDATA)global Selec;Selec = get(hObject,'Value');function pus...
绛旓細妤间富璇寸殑鎰忔濅笉鏄緢鏄庣櫧锛氬鏋滆皟鐢ㄧ紪杈鏂囨湰妗嗛噷闈鐨勬暟鎹潵鐢诲浘锛岃繖閲屼妇涓緥瀛愬笇鏈涘妤间富鏈夋墍甯姪锛氬亣鑻ワ紝edit1涓槸涓煩闃礎=[1 2 3;2 3 5 ;4 5 6];edit2涓緭鍏ョ殑鏄煩闃礏=[1 2 3 ;2 3 4;4 5 6;]閭d箞濡傛灉浣犳兂鐩存帴鍦╢igure涓嚭鍥撅紝鍙互鐩存帴鍦╣ui m鏂囦欢涓殑function ***_OpeningFcn(hO...
绛旓細鍏抽敭鏄綘杩欎簺浠g爜鏀惧湪鍝噷銆傛瘮濡傦細function edit3_ButtonDownFcn(hObject, eventdata, handles)% hObject handle to edit3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global w1;global w2;...
绛旓細鑾峰彇鏂囨湰妗嗕腑鐨勬暟鎹紝璇蜂娇鐢╡val鍑芥暟锛宔val鍑芥暟鐨勫姛鑳藉氨鏄皢瀛楃涓插綋鐫姝e父璇彞鏉ユ墽琛屻傛瘮濡傗滃搴鈥濋噷闈綘濉簡2锛岄氳繃get锛坔andles."杩欎釜鏂囨湰妗嗙殑鍙ユ焺"锛宻tring锛夊彲浠ヨ幏寰2杩欎釜瀛楃涓诧紝閫氳繃璧嬪煎氨鍙互鍒板彉閲忎簡锛屾瘮濡 weight=eval(get锛坔andles."杩欎釜鏂囨湰妗嗙殑鍙ユ焺"锛宻tring锛)...