Использование функции disp для отображения значений
Data.xlsx
является файлом Excel, содержащим данные для 156 студентов. В ячейке 4 файла Excel отображается 1-й номер студента, и если вы увеличите число до 7, у вас будет 2-й номер студента и так далее до последней ячейки 1094.
F = xlsread('Data.xlsx');
for ii = 4:7:1094
studentNumbers = disp(F(ii));
end
но это дает мне ошибку, говоря:Too many output arguments
". Однако, если я просто укажу disp(F(ii))
, это не дает мне никакой ошибки и отображает все номера студентов по порядку.
Есть ли лучший способ сделать это, чтобы я мог назначить все эти номера студентов в массив под названием studentNumbers
?
2 ответа
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)
Если я правильно понимаю, вы пытаетесь сделать следующее:
studentNumbers = F(4:7:1094);