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

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 件のコメント

Domanic
Domanic 2018 年 1 月 26 日
Your first issue is that the variable that you're trying to write:
[Y.',theta_3.']
is symbolic, rather than numeric.
Walter Roberson
Walter Roberson 2018 年 1 月 26 日
Good point, Domanic. using double(Y.') should fix that.
Dr. Hareesha N G
Dr. Hareesha N G 2018 年 1 月 26 日
I tried using double. But, Didn't work.
Dr. Hareesha N G
Dr. Hareesha N G 2018 年 1 月 27 日
Getting this error:: Error using xlswrite (line 220) Error: The server threw an exception.
I have used the following code to covert the sym to numeric output, But, its displaying the above error.
[out] = [Y', double(double(theta_3))'];
Walter Roberson
Walter Roberson 2018 年 1 月 27 日
Is your Y still sym?
Out = double([Y', theta3'])
Dr. Hareesha N G
Dr. Hareesha N G 2018 年 1 月 27 日
No. Converted Y to double and tried. Its showing the same error.
Walter Roberson
Walter Roberson 2018 年 1 月 28 日
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.

サインインしてコメントする。

回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeMatrix Indexing についてさらに検索

質問済み:

2018 年 1 月 26 日

コメント済み:

2018 年 1 月 28 日

Community Treasure Hunt

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

Start Hunting!

Translated by