xlswrite is giving some error while using "for loop" in matlab
Show older comments
Dear MATLAB Experts,
I need to write the output of each loop in the same excel sheet, column-wise.
'Y' output data in column-A of excel sheet and 'Theta_3' output data in column-B of the same sheet.
In the next loop, output must be written in C and D column, and so on.....
Each loop gives either 4 or 8 real roots of the polynomial (defined in 'r'). I dont want imaginary roots.
I have written code like this.
But, its showing the following error:
#############################################################
Error using xlswrite (line 166)
Input data must be a numeric, cell, or logical array.
#############################################################
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all
clc
syms l1 l2 l3 x y real
format short
for l3 = 0.77:.01:1.06;
l1 = sqrt(2);
l2 = sqrt(2);
r=4096 * l1 .^ 8 * y .^ 8 - 32768 * l1 .^ 7 * l3 * y .^ 8 - 16384 * l1 .^ 6 * l2 .^ 2 * y .^ 8 + 147456 * l1 .^ 6 * l3 .^ 2 * y .^ 8 + 131072 * l1 .^ 5 * l2 .^ 2 * l3 * y .^ 8 - 425984 * l1 .^ 5 * l3 .^ 3 * y .^ 8 + 32768 * l1 .^ 4 * l2 .^ 4 * y .^ 8 - 491520 * l1 .^ 4 * l2 .^ 2 * l3 .^ 2 * y .^ 8 + 876544 * l1 .^ 4 * l3 .^ 4 * y .^ 8 - 262144 * l1 .^ 3 * l2 .^ 4 * l3 * y .^ 8 + 1114112 * l1 .^ 3 * l2 .^ 2 * l3 .^ 3 * y .^ 8 - 1277952 * l1 .^ 3 * l3 .^ 5 * y .^ 8 - 65536 * l1 .^ 2 * l2 .^ 6 * y .^ 8 + 655360 * l1 .^ 2 * l2 .^ 4 * l3 .^ 2 * y .^ 8 - 1589248 * l1 .^ 2 * l2 .^ 2 * l3 .^ 4 * y .^ 8 + 1327104 * l1 .^ 2 * l3 .^ 6 * y .^ 8 + 262144 * l1 * l2 .^ 6 * l3 * y .^ 8 - 917504 * l1 * l2 .^ 4 * l3 .^ 3 * y .^ 8 + 1376256 * l1 * l2 .^ 2 * l3 .^ 5 * y .^ 8 - 884736 * l1 * l3 .^ 7 * y .^ 8 + 65536 * l2 .^ 8 * y .^ 8 - 262144 * l2 .^ 6 * l3 .^ 2 * y .^ 8 + 491520 * l2 .^ 4 * l3 .^ 4 * y .^ 8 - 589824 * l2 .^ 2 * l3 .^ 6 * y .^ 8 + 331776 * l3 .^ 8 * y .^ 8 + 16384 * l1 .^ 8 * y .^ 6 - 65536 * l1 .^ 7 * l3 * y .^ 6 - 65536 * l1 .^ 6 * l2 .^ 2 * y .^ 6 - 65536 * l1 .^ 6 * l3 .^ 2 * y .^ 6 + 262144 * l1 .^ 5 * l2 .^ 2 * l3 * y .^ 6 + 720896 * l1 .^ 5 * l3 .^ 3 * y .^ 6 + 131072 * l1 .^ 4 * l2 .^ 4 * y .^ 6 - 131072 * l1 .^ 4 * l2 .^ 2 * l3 .^ 2 * y .^ 6 - 1998848 * l1 .^ 4 * l3 .^ 4 * y .^ 6 - 524288 * l1 .^ 3 * l2 .^ 4 * l3 * y .^ 6 - 917504 * l1 .^ 3 * l2 .^ 2 * l3 .^ 3 * y .^ 6 + 2162688 * l1 .^ 3 * l3 .^ 5 * y .^ 6 - 262144 * l1 .^ 2 * l2 .^ 6 * y .^ 6 + 524288 * l1 .^ 2 * l2 .^ 4 * l3 .^ 2 * y .^ 6 - 65536 * l1 .^ 2 * l2 .^ 2 * l3 .^ 4 * y .^ 6 - 589824 * l1 .^ 2 * l3 .^ 6 * y .^ 6 + 524288 * l1 * l2 .^ 6 * l3 * y .^ 6 - 1835008 * l1 * l2 .^ 4 * l3 .^ 3 * y .^ 6 + 2752512 * l1 * l2 .^ 2 * l3 .^ 5 * y .^ 6 - 1769472 * l1 * l3 .^ 7 * y .^ 6 + 262144 * l2 .^ 8 * y .^ 6 - 1048576 * l2 .^ 6 * l3 .^ 2 * y .^ 6 + 1966080 * l2 .^ 4 * l3 .^ 4 * y .^ 6 - 2359296 * l2 .^ 2 * l3 .^ 6 * y .^ 6 + 1327104 * l3 .^ 8 * y .^ 6 + 24576 * l1 .^ 8 * y .^ 4 - 98304 * l1 .^ 6 * l2 .^ 2 * y .^ 4 - 425984 * l1 .^ 6 * l3 .^ 2 * y .^ 4 + 196608 * l1 .^ 4 * l2 .^ 4 * y .^ 4 + 720896 * l1 .^ 4 * l2 .^ 2 * l3 .^ 2 * y .^ 4 + 3686400 * l1 .^ 4 * l3 .^ 4 * y .^ 4 - 393216 * l1 .^ 2 * l2 .^ 6 * y .^ 4 - 262144 * l1 .^ 2 * l2 .^ 4 * l3 .^ 2 * y .^ 4 + 3047424 * l1 .^ 2 * l2 .^ 2 * l3 .^ 4 * y .^ 4 - 3833856 * l1 .^ 2 * l3 .^ 6 * y .^ 4 + 393216 * l2 .^ 8 * y .^ 4 - 1572864 * l2 .^ 6 * l3 .^ 2 * y .^ 4 + 2949120 * l2 .^ 4 * l3 .^ 4 * y .^ 4 - 3538944 * l2 .^ 2 * l3 .^ 6 * y .^ 4 + 1990656 * l3 .^ 8 * y .^ 4 + 16384 * l1 .^ 8 * y .^ 2 + 65536 * l1 .^ 7 * l3 * y .^ 2 - 65536 * l1 .^ 6 * l2 .^ 2 * y .^ 2 - 65536 * l1 .^ 6 * l3 .^ 2 * y .^ 2 - 262144 * l1 .^ 5 * l2 .^ 2 * l3 * y .^ 2 - 720896 * l1 .^ 5 * l3 .^ 3 * y .^ 2 + 131072 * l1 .^ 4 * l2 .^ 4 * y .^ 2 - 131072 * l1 .^ 4 * l2 .^ 2 * l3 .^ 2 * y .^ 2 - 1998848 * l1 .^ 4 * l3 .^ 4 * y .^ 2 + 524288 * l1 .^ 3 * l2 .^ 4 * l3 * y .^ 2 + 917504 * l1 .^ 3 * l2 .^ 2 * l3 .^ 3 * y .^ 2 - 2162688 * l1 .^ 3 * l3 .^ 5 * y .^ 2 - 262144 * l1 .^ 2 * l2 .^ 6 * y .^ 2 + 524288 * l1 .^ 2 * l2 .^ 4 * l3 .^ 2 * y .^ 2 - 65536 * l1 .^ 2 * l2 .^ 2 * l3 .^ 4 * y .^ 2 - 589824 * l1 .^ 2 * l3 .^ 6 * y .^ 2 - 524288 * l1 * l2 .^ 6 * l3 * y .^ 2 + 1835008 * l1 * l2 .^ 4 * l3 .^ 3 * y .^ 2 - 2752512 * l1 * l2 .^ 2 * l3 .^ 5 * y .^ 2 + 1769472 * l1 * l3 .^ 7 * y .^ 2 + 262144 * l2 .^ 8 * y .^ 2 - 1048576 * l2 .^ 6 * l3 .^ 2 * y .^ 2 + 1966080 * l2 .^ 4 * l3 .^ 4 * y .^ 2 - 2359296 * l2 .^ 2 * l3 .^ 6 * y .^ 2 + 1327104 * l3 .^ 8 * y .^ 2 + 4096 * l1 .^ 8 + 32768 * l1 .^ 7 * l3 - 16384 * l1 .^ 6 * l2 .^ 2 + 147456 * l1 .^ 6 * l3 .^ 2 - 131072 * l1 .^ 5 * l2 .^ 2 * l3 + 425984 * l1 .^ 5 * l3 .^ 3 + 32768 * l1 .^ 4 * l2 .^ 4 - 491520 * l1 .^ 4 * l2 .^ 2 * l3 .^ 2 + 876544 * l1 .^ 4 * l3 .^ 4 + 262144 * l1 .^ 3 * l2 .^ 4 * l3 - 1114112 * l1 .^ 3 * l2 .^ 2 * l3 .^ 3 + 1277952 * l1 .^ 3 * l3 .^ 5 - 65536 * l1 .^ 2 * l2 .^ 6 + 655360 * l1 .^ 2 * l2 .^ 4 * l3 .^ 2 - 1589248 * l1 .^ 2 * l2 .^ 2 * l3 .^ 4 + 1327104 * l1 .^ 2 * l3 .^ 6 - 262144 * l1 * l2 .^ 6 * l3 + 917504 * l1 * l2 .^ 4 * l3 .^ 3 - 1376256 * l1 * l2 .^ 2 * l3 .^ 5 + 884736 * l1 * l3 .^ 7 + 65536 * l2 .^ 8 - 262144 * l2 .^ 6 * l3 .^ 2 + 491520 * l2 .^ 4 * l3 .^ 4 - 589824 * l2 .^ 2 * l3 .^ 6 + 331776 * l3 .^ 8;
[Y]=(solve(r));
[theta_3]=double(atan(Y)*2*180/pi);
mainArrayToWrite = [Y.',theta_3.']
filename = 'data.xlsx';
sheet = 1;
xlRange = 'A1';
xlswrite(filename, mainArrayToWrite, sheet, xlRange)
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
7 Comments
Domanic
on 26 Jan 2018
Your first issue is that the variable that you're trying to write:
[Y.',theta_3.']
is symbolic, rather than numeric.
Walter Roberson
on 26 Jan 2018
Good point, Domanic. using double(Y.') should fix that.
Dr. Hareesha N G
on 26 Jan 2018
Dr. Hareesha N G
on 27 Jan 2018
Walter Roberson
on 27 Jan 2018
Is your Y still sym?
Out = double([Y', theta3'])
Dr. Hareesha N G
on 27 Jan 2018
Walter Roberson
on 28 Jan 2018
Could you confirm that class(out) is double now?
If it is and you are still getting server exception then you have an Excel problem. Check to see if you have any Excel add-ins, and if so remove or disable them.
Answers (0)
Categories
Find more on Data Import from MATLAB in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!