Использование функции 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);
Другие вопросы по тегам