Writetable logical table to excel as zeros and ones

11 vues (au cours des 30 derniers jours)
Erwin Werkhoven
Erwin Werkhoven le 30 Jan 2023
Hi,
I have a large table containing only logicals. If I use writetable to write the table to a csv file, it writes ones and zeros. That's what I want.
% masks.accepted a table with only logicals
filterdump_file = fullfile(capmat_out_folder, "filterdump.csv");
writetable(masks.accepted, filterdump_file);
But if have write the exact same table to an excel file, it writes "true" and "false".
% masks.accepted a table with only logicals
capmat_out_file = fullfile(capmat_out_folder, strcat(capmat_file_basename, "_out.xlsx"));
writetable(masks.accepted, capmat_out_file, "Sheet", "Filter Dump", "AutoFitWidth",false);
Why does writetable write ones and zeros to a csv file, and "true" and "false" to an excel file? Besides that, writing to a csv file is done in a few seconds, but writing to an excel file takes like 10+ mins. How can I get matlab/writetable to write ones and zeros to an excel file?
Thanks in advance

Réponse acceptée

Erwin Werkhoven
Erwin Werkhoven le 6 Fév 2023
print_accepted = convertvars(masks.accepted, @islogical, 'uint8');

Plus de réponses (1)

Walter Roberson
Walter Roberson le 30 Jan 2023
Write out double() of the logical array.
  2 commentaires
Erwin Werkhoven
Erwin Werkhoven le 6 Fév 2023
I don't think that works, since mask.accepted is not a logical array but a table.
Erwin Werkhoven
Erwin Werkhoven le 6 Fév 2023
Looks like this does the job:
print_accepted = convertvars(masks.accepted, @islogical, 'uint8');

Connectez-vous pour commenter.

Produits


Version

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by