Writetable logical table to excel as zeros and ones

4 Ansichten (letzte 30 Tage)
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

Akzeptierte Antwort

Erwin Werkhoven
Erwin Werkhoven am 6 Feb. 2023
print_accepted = convertvars(masks.accepted, @islogical, 'uint8');

Weitere Antworten (1)

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

Melden Sie sich an, um zu kommentieren.

Produkte


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by