<pre class="plain" name="code">//程序刚运行的时候执行OpeningFcn,所以以下代码要写在里面
//打开一个txt文件,只读形式
fin = fopen('score.txt', 'r');
//获取行用fgetl(不是数字1)
str = fgetl(fin);
//将第一行存入,分隔符是一个空格
[str1 str2 str3 str4] = strread(str, '%s %s %s %s', 'delimiter', ' ');
定义了一个姓名的数组,第一个元素就是Name
xingming(1) = str1;
counter = 2;
//在读到文件尾之前,都进行以下操作
while feof(fin)==0
str = fgetl(fin);//获取
[name yuwen shuxue yingyu] = strread(str, '%s %d %d %d', 'delimiter', ' ');//对应读
xingming(counter) = name;//将读到的name值存入姓名数组第二个位置
chengji(counter-1,:) = [yuwen shuxue yingyu];//将读到的后几个值存到成绩数组,对第counter-1行的每一列
counter = counter + 1;//迭代
end;
set(handles.listbox1, 'string', xingming);//将姓名一栏显示在listbox1中
handles.chengji = chengji;
fclose(fin);//关闭文件
——————————————————————————————分隔符————————————————————————————————————
//下面要实现点击姓名,在右边的edit1框中显示对应的成绩,写在listbox1的callback中
value = get(hObject, 'value') - 1;
set(handles.edit1, 'string', num2str(handles.chengji(value, :)));//将成绩转换成string类型显示在edit1中
结果如下: