使用disp函数显示值

时间:2016-09-25 02:43:30

标签: matlab for-loop xlsread disp

Data.xlsx是一个excel文件,其中包含 156 学生的数据。从excel文件的 4 单元格中,显示第一学生编号,如果增加 7 ,则表示第二< / strong>学生编号,直到最后一个单元格 1094

F = xlsread('Data.xlsx');

for ii =  4:7:1094
    studentNumbers = disp(F(ii)); 
end

但这给了我一个错误,说“Too many output arguments”。但是,如果我只指定disp(F(ii)),它不会给我任何错误,并按顺序显示所有学生编号。

是否有更好的方法可以将所有这些学生编号分配到名为studentNumbers的数组中?

2 个答案:

答案 0 :(得分:1)

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

studentNumbers = F(4:7:1094);

答案 1 :(得分:0)

disp是一个在屏幕上显示数字的功能,而不是将其分配给另一个变量。如果您想分配给您,只需使用=。所以你的循环应该是:

for ii =  4:7:1094
    studentNumbers = F(ii); 
end

现在,正如@Sardar正确指出的那样,这里不需要循环,您可以使用向量4:7:1094作为索引,在一个命令中分配所有值。与his answer中一样:

studentNumbers = F(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)