Read Excel and write output

R = xlsread('Book1.xlsx') %% Excel sheet (Book1.xlsx) is in 'D' drive
R = 20×3
0.0100 0.0100 0.0100 0.0300 0.0100 0.0100 0.0100 0.0300 0.0100 0.0300 0.0300 0.0100 0.0100 0.0100 0.0300 0.0300 0.0100 0.0300 0.0100 0.0300 0.0300 0.0300 0.0300 0.0300 0.0100 0.0200 0.0200 0.0300 0.0200 0.0200
A = 1; B = 2; C = 3;
Nu = A*p1 + B*p2 + C*p3;
Unrecognized function or variable 'p1'.
I want Matlab to read Excel sheet, columns C, D, and E, then calculate Nu (column F) by the above formula and write the respective values in column F in that excel sheet automatically.

 Accepted Answer

filename = 'Book1.xlsx'; % path to your file, e.g., 'D:\PK79\Book1.xlsx'
% read the file to a table:
T = readtable(filename)
T = 20×4 table
p1 p2 p3 NU ____ ____ ____ ___ 0.01 0.01 0.01 NaN 0.03 0.01 0.01 NaN 0.01 0.03 0.01 NaN 0.03 0.03 0.01 NaN 0.01 0.01 0.03 NaN 0.03 0.01 0.03 NaN 0.01 0.03 0.03 NaN 0.03 0.03 0.03 NaN 0.01 0.02 0.02 NaN 0.03 0.02 0.02 NaN 0.02 0.01 0.02 NaN 0.02 0.03 0.02 NaN 0.02 0.02 0.01 NaN 0.02 0.02 0.03 NaN 0.02 0.02 0.02 NaN 0.02 0.02 0.02 NaN
% update the NU column:
A = 1; B = 2; C = 3;
T.NU = A*T.p1 + B*T.p2 + C*T.p3
T = 20×4 table
p1 p2 p3 NU ____ ____ ____ ____ 0.01 0.01 0.01 0.06 0.03 0.01 0.01 0.08 0.01 0.03 0.01 0.1 0.03 0.03 0.01 0.12 0.01 0.01 0.03 0.12 0.03 0.01 0.03 0.14 0.01 0.03 0.03 0.16 0.03 0.03 0.03 0.18 0.01 0.02 0.02 0.11 0.03 0.02 0.02 0.13 0.02 0.01 0.02 0.1 0.02 0.03 0.02 0.14 0.02 0.02 0.01 0.09 0.02 0.02 0.03 0.15 0.02 0.02 0.02 0.12 0.02 0.02 0.02 0.12
% write the table back out to file:
writetable(T,filename,'WriteMode','overwritesheet')
% check the result:
T = readtable(filename)
T = 20×4 table
p1 p2 p3 NU ____ ____ ____ ____ 0.01 0.01 0.01 0.06 0.03 0.01 0.01 0.08 0.01 0.03 0.01 0.1 0.03 0.03 0.01 0.12 0.01 0.01 0.03 0.12 0.03 0.01 0.03 0.14 0.01 0.03 0.03 0.16 0.03 0.03 0.03 0.18 0.01 0.02 0.02 0.11 0.03 0.02 0.02 0.13 0.02 0.01 0.02 0.1 0.02 0.03 0.02 0.14 0.02 0.02 0.01 0.09 0.02 0.02 0.03 0.15 0.02 0.02 0.02 0.12 0.02 0.02 0.02 0.12

1 Comment

Dear Voss
A Salute to your ideas, it worked for me. It is actually a sample of my original work. I applied your technique with bvp5C code but unable. Please have a look into the link of same type work.
https://in.mathworks.com/matlabcentral/answers/2069731-read-excel-and-write-the-output-in-same-sheet-in-three-columns

Sign in to comment.

More Answers (1)

What is p1, p2, and p3? You might try
R = xlsread('Book1.xlsx') %% Excel sheet (Book1.xlsx) is in 'D' drive
A = R(:, 1);
B = R(:, 2);
C = R(:, 3);
Nu = A*p1 + B*p2 + C*p3;

3 Comments

% The excel sheet is in 'D' drive and I want Matlab to read
% want Matlab to paste the result (Nu) in the column F3:F22 in that excel sheet which is present in 'D' drive
% Here is the code which needs some modification
status = mkdir('D:\PK79'); cd D:\PK79
R = xlsread('Book1.xlsx') %% Excel sheet (Book1.xlsx) is in 'D' drive
A = 1; B = 2; C = 3;
p1 = R(:, 1); p2 = R(:, 2); p3 = R(:, 3);
Nu = A*p1 + B*p2 + C*p3;
for m = 1:size(Nu,2)
str = sprintf('%s%d:%s%d', 69+m, 22*(m-1)+3, 69+m, 22*m)
writematrix(Nu(:,m), 'Book1.xlsx', 'Sheet', 'Results', 'Range', str)
end
You accepted Voss's answer so I guess you got it all figured out now.

Sign in to comment.

Asked:

on 13 Jan 2024

Commented:

on 15 Jan 2024

Community Treasure Hunt

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

Start Hunting!