1

Data.xlsx是一个包含156名学生数据的 excel 文件。从excel 文件的单元格4开始,显示第一个学生编号,如果您增加7,您将获得第二个学生编号,依此类推,直到最后一个单元格1094

F = xlsread('Data.xlsx');

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

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

有没有更好的方法来做到这一点,以便我可以将所有这些学生编号分配到一个名为的数组中studentNumbers

4

2 回答 2

1

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

studentNumbers = F(4:7:1094);
于 2016-09-25T06:38:28.693 回答
0

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

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

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

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)
于 2016-09-25T07:19:41.887 回答