import and export of excel sheet work
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
MINATI PATRA
il 27 Nov 2023
Modificato: MINATI PATRA
il 1 Dic 2023
Fr = .1; M = .2; Kp = 0.50; lambda = 0.1; Nr = 0.1; Pr = 7; Rd = 0.5; Nb = 0.5; Nt = 0.5; H = 0.01;
Ec = 0.01; Le = 2; Sr = 1; D = 0.5; n = 1; E = 0.5; Bi = 0.5; Slip = 0.1;
for M = [0.2 0.3 0.5]
ODE = @(x,y)[ y(2); y(3); - y(1)*y(3) + (1+Fr)*y(2)^2 + (M+Kp)*y(2) - lambda*( y(4) - Nr*y(6) );
y(5); -(Pr/(1+Rd))*( y(1)*y(5) + Nb*y(5)*y(7) + Nt*y(5)^2 + H*y(4) + Ec*y(3)^2 );
y(7); -Pr*Le*y(1)*y(7) - (Nt/Nb)*(-(Pr/(1+Rd))*(y(1)*y(5) + Nb*y(5)*y(7) + Nt*y(5)^2 + H*y(4) + Ec*y(3)^2)) + Le*Pr*Sr*(1 + D*y(4))^n *y(6)*exp(-E/(1 + D*y(4)))];
BC = @(ya,yb)[ya(1); ya(2)-1-Slip*ya(3); ya(5)+Bi*(1-ya(4)); ya(7)+(Nt/Nb)*ya(5); yb([2;4;6])]; xa = 0; xb = 6; x = linspace(xa,xb,101);
solinit = bvpinit(x,[0 1 0 1 0 1 0]); sol = bvp5c(ODE,BC,solinit); S = deval(sol,x);
f0 = deval(sol,0); Cf = f0(3);Nu = - (1+Rd)*f0(5); Sh = - f0(7);
disp([Cf Nu Sh])
end
Attached excel sheet shows some calculation by the present code which I want MATLAB to follow the inputs of all the parameters and excecute the calculations of "Cf, Nu and Sh" (FORMULA described in the code) (CALCULATIONS given in the last columns of excel sheet) DIRECTLY and create another excel sheet or matlab TABLE type something.
2 Commenti
Risposta accettata
Image Analyst
il 30 Nov 2023
OK, you seem to do that. The loop in the (horribly uncommented) code computes Cf, Nu, and Sh. To create another sheet you need to call writetable after the loop. And if you want those values for all 3 iterations, you're going to have to index them as arrays. Something like (untested):
Fr = .1; M = .2; Kp = 0.50; lambda = 0.1; Nr = 0.1; Pr = 7; Rd = 0.5; Nb = 0.5; Nt = 0.5; H = 0.01;
Ec = 0.01; Le = 2; Sr = 1; D = 0.5; n = 1; E = 0.5; Bi = 0.5; Slip = 0.1;
allM = [0.2 0.3 0.5];
for k = 1 : numel(allM)
M = allM(k); % Get the M for this iteration.
% MINATI's computations:
ODE = @(x,y)[ y(2); y(3); - y(1)*y(3) + (1+Fr)*y(2)^2 + (M+Kp)*y(2) - lambda*( y(4) - Nr*y(6) );
y(5); -(Pr/(1+Rd))*( y(1)*y(5) + Nb*y(5)*y(7) + Nt*y(5)^2 + H*y(4) + Ec*y(3)^2 );
y(7); -Pr*Le*y(1)*y(7) - (Nt/Nb)*(-(Pr/(1+Rd))*(y(1)*y(5) + Nb*y(5)*y(7) + Nt*y(5)^2 + H*y(4) + Ec*y(3)^2)) + Le*Pr*Sr*(1 + D*y(4))^n *y(6)*exp(-E/(1 + D*y(4)))];
BC = @(ya,yb)[ya(1); ya(2)-1-Slip*ya(3); ya(5)+Bi*(1-ya(4)); ya(7)+(Nt/Nb)*ya(5); yb([2;4;6])]; xa = 0; xb = 6; x = linspace(xa,xb,101);
solinit = bvpinit(x,[0 1 0 1 0 1 0]); sol = bvp5c(ODE,BC,solinit); S = deval(sol,x);
f0 = deval(sol,0);
% Save the values for this loop
Cf(k) = f0(3);
Nu(k) = - (1+Rd)*f0(5);
Sh(k) = - f0(7);
fprintf('for k = %d, Cf = %f, Nu = %f, Sh = %f.\n', Cf(k), Nu(k), Sh(k));
end
output = [Cf(:), Nu(:), Sh(:)]
writetable(output, excelFileName, 'Sheet', 'Results');
To learn other fundamental concepts, invest 2 hours of your time here:
3 Commenti
Image Analyst
il 30 Nov 2023
You need to have quotes around it
writetable(output, 'PriyaSRM.xlsx', 'Sheet', 'Results');
otherwise it thinks you have a structure called PriyaSRM with a field called xlsx.
or else assign it to a variable and pass the variable into writetable
fullFileName = fullfile(pwd, 'PriyaSRM.xlsx')
writetable(output, fullFileName', 'Sheet', 'Results');
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Data Import from MATLAB in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!