Clear Filters
Clear Filters

xlswrite is giving some error while using "for loop" in matlab

1 view (last 30 days)
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
Dr. Hareesha N G
Dr. Hareesha N G on 27 Jan 2018
No. Converted Y to double and tried. Its showing the same error.
Walter Roberson
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.

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!