Matlab 使用disp函数显示值

Matlab 使用disp函数显示值,matlab,for-loop,xlsread,disp,Matlab,For Loop,Xlsread,Disp,Data.xlsx是一个excel文件,包含156名学生的数据。从excel文件的单元格4中,显示1st学生编号,如果按7递增,则显示2nd学生编号,依此类推,直到最后一个单元格1094 F = xlsread('Data.xlsx'); for ii = 4:7:1094 studentNumbers = disp(F(ii)); end 但是这给了我一个错误,即“太多输出参数””。但是,如果我只指定disp(F(ii)),它不会给我任何错误,并按顺序显示所有学生编号 是否有更

Data.xlsx
是一个excel文件,包含156名学生的数据。从excel文件的单元格4中,显示1st学生编号,如果按7递增,则显示2nd学生编号,依此类推,直到最后一个单元格1094

F = xlsread('Data.xlsx');

for ii =  4:7:1094
    studentNumbers = disp(F(ii)); 
end
但是这给了我一个错误,即“
太多输出参数”
”。但是,如果我只指定
disp(F(ii))
,它不会给我任何错误,并按顺序显示所有学生编号


是否有更好的方法来完成此操作,以便我可以将所有这些学生编号分配到一个名为
studentNumbers
的数组中?

如果我理解正确,您正在尝试执行以下操作:

studentNumbers = F(4:7:1094);
是一个在屏幕上显示数字的函数,而不是将其分配给另一个变量。如果要分配,只需使用
=
。因此,您的循环应该是:

for ii =  4:7:1094
    studentNumbers = F(ii); 
end
现在,正如@Sardar正确指出的,这里不需要循环,您可以在一个命令中分配所有值,使用向量
4:7:1094
作为索引。例如:

但是,如果您可以在Excel中定义数据范围,则
xlread
允许您通过将函数设置为读取特定范围来跳过此赋值,如:

sheet = 1; % if the data in in sheet 1
xlRange = 'D:D'; % if all the data is in column D
studentNumbers = xlsread('Data.xlsx',sheet,xlRange)
sheet = 1; % if the data in in sheet 1
xlRange = 'D:D'; % if all the data is in column D
studentNumbers = xlsread('Data.xlsx',sheet,xlRange)