Экспорт данных в Excel в matlab

#excel #matlab #printf #fopen

#excel #matlab #printf #открыть

Вопрос:

Привет, я пытаюсь экспортировать результаты в Excel, которые я получаю с помощью fprintf внутри цикла, я не знаю, использовать ли мне xlswrite или fopen вот код

 names=["Carlos",'Sara','Sinead','Kai','Ali','Chen','Julia','Tom'];
marks= [23,45,67,90,45,61,14,84];
fprintf('Names t Marks t Result n');
for i = 1:length(marks) 
if marks(i) < 39 
   result = ("Fail");
  elseif marks(i) < 69
     result = ("Pass");
  else 
    result = ("Distinction");
  end

   fprintf('%s t %d t %sn',names(i),marks(i),result);
 end
  

поэтому я бы хотел, чтобы fprintf(‘%s t %d t %s n’,имена (i), метки (i), результат); в Excel

Комментарии:

1. Возможно, вы захотите проверить writetable , writematrix , и т.д. xlswrite не рекомендуется, и печать в файл построчно выглядит как большая проблема.

2. Я проверил это, но я просто не знаю, как применить это здесь

Ответ №1:

Экспорт данных в виде таблицы в файл Excel

Я использовал массив для записи Results в массив. После оценки результатов каждой оценки я затем создаю таблицу с помощью table() функции, вводя выбранные массивы для экспорта. Наконец, использование функции writetable() позволяет экспортировать таблицу .xlsx в файл Excel. Если вы хотите добавить данные в существующий файл Excel, вам может потребоваться использовать альтернативную функцию для его открытия.

 Names =["Carlos",'Sara','Sinead','Kai','Ali','Chen','Julia','Tom']';
Marks = [23,45,67,90,45,61,14,84]';
Results = strings(length(Names),1);

fprintf('Names t Marks t Result n');

for i = 1:length(Marks)
    
  if Marks(i) < 39 
    Results(i) = ("Fail");
   
  elseif Marks(i) < 69
     Results(i) = ("Pass");
     
  else 
    Results(i) = ("Distinction");
  end

   fprintf('%s t %d t %sn',Names(i),Marks(i),Results(i));
end
 

Report_Table = table(Names,Marks,Results);
File_Name = 'Report_Table.xlsx';
writetable(Report_Table,File_Name,'Sheet',1);