How can I export variales from double and structure with different rows into excel?

1 visualizzazione (ultimi 30 giorni)
Hello everyone,
I have variables in 8x1 double, in 40x1 double under 1x1 struct, and 1x1 double. Since I have the same varibles for different trials saved in different MATLAB files, I was trying to save all the variables from each trial in a table first and export to a excel for all trials. Then, copy and paste variables from each excel for each trial, and put them all together in a new excel. But when I run the code for making a table (as shown below), it gets into an error:
Error using table (line 233)
All table variables must have the same number of rows.
KineVar=table(AbdAngleMax,AbdAngleMin,AbdAngleChange,speed,FinSwingDist.dist,TailSwingDist.dist)
EMGvariable.Properties.VariableNames{1} = 'AbdAngleMax';
EMGvariable.Properties.VariableNames{2} = 'AbdAngleMin';
EMGvariable.Properties.VariableNames{3} = 'AbdAngleChange';
EMGvariable.Properties.VariableNames{4} = 'speed';
EMGvariable.Properties.VariableNames{5} = 'FinSwingDist.dist';
EMGvariable.Properties.VariableNames{5} = 'TailSwingDist.dist';
fileName='KINEvariableResults.xlsx'
writetable(KINEvariable,fileName)
winopen(fileName)
Is there anything I could do to fix the issue? Or should I not use the table function?
Thank you very much for your help!
  3 Commenti
lisa Liang
lisa Liang il 1 Ott 2020
Thank you for your answer! Yes, you are right.
"AbdAngleMax","AbdAngleMin","AbdAngleChange" are in 8x1 double, and "FinSwingDist.dist","TailSwingDist.dist" are in in 40x1 double of a 1x1 struct,
"speed" is in 1x1 double.
Do you mean that I should turn the 1x1 and 8x1 doubles into 40x1 double and fill it up with NaNs?
Mario Malic
Mario Malic il 1 Ott 2020
Modificato: Mario Malic il 1 Ott 2020
Yes, that should work.
Edit: moving my comment to answers, since I tested it.

Accedi per commentare.

Risposta accettata

Mario Malic
Mario Malic il 1 Ott 2020
These have to have same number of rows, which they don't, according to your first sentence.
AbdAngleMax,AbdAngleMin,AbdAngleChange,speed,FinSwingDist.dist,TailSwingDist.dist
Fill up your variables with NaN's to match the maximum number of rows that a variable has.
  3 Commenti
Mario Malic
Mario Malic il 1 Ott 2020
Modificato: Mario Malic il 1 Ott 2020
If you know that maximum number of rows is 40, initialize it with NaN, if that would not make a problem in your calculations
AbdAngleMax = NaN(40,1)
Otherwise,
L = length(AbdAngleMax)
AbdAngleMax(L+1:40,1) = nan;
% repeat for the rest of variables/structs

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

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

Start Hunting!

Translated by