Data.xlsx是一个excel文件,包含156学生的数据。从excel文件的单元格4中,显示1学生编号,如果通过7递增,则有2学生号等,直到最后一个单元格1094E 212为止。
F = xlsread('Data.xlsx');
for ii = 4:7:1094
studentNumbers = disp(F(ii));
end但这让我在说"Too many output arguments“时出错了。但是,如果我只是指定disp(F(ii)),它不会给我任何错误,并显示所有的学生号码的顺序。
是否有更好的方法来做到这一点,以便我可以将所有这些学生编号分配到一个名为studentNumbers的数组中
发布于 2016-09-25 07:19:41
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)发布于 2016-09-25 06:38:28
如果我理解正确的话,你要做的是:
studentNumbers = F(4:7:1094);https://stackoverflow.com/questions/39682887
复制相似问题