Effacer les filtres
Effacer les filtres

I am trying to figure out how to use writetable instead of xlswrite, but the feature is converting my numbers to text. Headers are text.

15 vues (au cours des 30 derniers jours)
Original Code that works fine
Excel_Sheet = [Excel_head; Excel_out];
xlswrite('C:\D_Local\MATLAB\AAAA\PhaseII_CA_out.xlsx',Excel_sheet);
Where Excel_head is a text array and Excel_out is a numberical matrix of values.
New Code that converts the numbers to text
Excel_sheet = table([Excel_head; Excel_out]);
writetable(Excel_sheet,'C:\D_Local\MATLAB\AAA\PhaseII_CA_out.xlsx');
why does it convert? There must be a way of making the table with numbers?
Best regards,
Farley

Réponses (2)

Voss
Voss le 9 Juil 2024 à 19:55
Excel_Sheet = array2table(Excel_out,'VariableNames',Excel_head);
writetable(Excel_sheet,'C:\D_Local\MATLAB\AAA\PhaseII_CA_out.xlsx');

Steven Lord
Steven Lord le 9 Juil 2024 à 19:59
Don't concatenate Excel_head and Excel_out together. Store them as separate table variables.
load patients;
LNS = string(LastName);
T = table(LNS, Age, VariableNames = ["Last Name", "Age"]);
head(T)
Last Name Age __________ ___ "Smith" 38 "Johnson" 43 "Williams" 38 "Jones" 40 "Brown" 49 "Davis" 46 "Miller" 33 "Wilson" 40
Compare with the concatenation code, which turns the numeric Age variable into text:
T2 = table([LNS, Age], VariableNames = ["Last Name and Age"]);
head(T2)
Last Name and Age __________________ "Smith" "38" "Johnson" "43" "Williams" "38" "Jones" "40" "Brown" "49" "Davis" "46" "Miller" "33" "Wilson" "40"

Produits


Version

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by