# Error in importing the matlab ouput to excel file

1 view (last 30 days)
sunitha on 19 Jan 2021
Commented: sunitha on 20 Jan 2021
i wrote the code for non linear equations and i got the result cubic roots. The problem is that i have to import the results to excel file . i use the command xlswrite but i am getting the error unable to convert the data. could anyone tell me to solve this issue. i am attaching my code below
clear all
close all
syms N
r = (No-N)./No ;
V = 2435 ;
k = 1.076 ;
Kn = 0.27 ;
nX = size(X,1 );
solutions = cell(nX,1 );
for S=1:nX
solutions{S} = solve(Qo(S) .* (1+R(S)) .* (No(S)-N) .* r(S) - V*((X(S)*k*N)./(Kn+N)), N );
vpa(solutions{S },5)
xlswrite(ans,'suspended.xlsx')

Bob Thompson on 19 Jan 2021
It looks like you're trying to output a symbolic variable to excel, which I don't think is allowed. Try converting to double first.
vpa(solutions{S },5)
double(ans)
xlswrite(ans,'suspend.xlsx')
Walter Roberson on 19 Jan 2021
WIth the particular data that the user posted, it happens that the roots are all real-valued (though some of them are negative.)

Walter Roberson on 19 Jan 2021
syms N
r = (No-N)./No ;
V = 2435 ;
k = 1.076 ;
Kn = 0.27 ;
nX = size(X,1 );
solutions = cell(1, nX);
for S=1:nX
solutions{S} = solve(Qo(S) .* (1+R(S)) .* (No(S)-N) .* r(S) - V*((X(S)*k*N)./(Kn+N)), N );
end
sold = cell2mat(cellfun(@(C) round(double(C),5), solutions, 'uniform', false ));
sold
sold = 3×4
-1.7821 -1.0898 -0.8270 -0.6909 17.2852 33.1067 50.1456 67.9752 424.2270 467.7131 510.4115 552.4458
xlswrite('suspended.xlsx', sold)
This creates the roots as rows of the output, with the columns corresponding to original data rows form the xlsx file. Or it would be easy enough to write sold.' to have the columns be the roots and the rows correspond to the original data rows from the xlsx file.
sunitha on 20 Jan 2021
Thank you