Multiple Input/output function to excel
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Doorgesh Ramkurrun
am 12 Mär. 2020
Kommentiert: Doorgesh Ramkurrun
am 12 Mär. 2020
Hey Guys,
This is an example of my function:
function[out1,out2,out3,out4]=Trial_4(in1,in2,in3,in4)
- I want to know how to input different values for my input 'in2' (for example values for in2 ranges from 0 to 0.1 with intervals = 0.001) without having to input them repeatedly in the command window,
- Secondly, I want to know how to convert my outputs into a table which can then be used in Excel.
Thanks!
0 Kommentare
Akzeptierte Antwort
Ameer Hamza
am 12 Mär. 2020
Bearbeitet: Ameer Hamza
am 12 Mär. 2020
You can try something like this
in1 = 0;
in2 = (0:0.001:0.1)';
in3 = 0;
in4 = 0;
% if out1 out2 out3 out4 are scalars
out1 = zeros(size(x));
out2 = zeros(size(x));
out3 = zeros(size(x));
out4 = zeros(size(x));
for i=1:numel(in2)
[out1(i),out2(i),out3(i),out4(i)]=Trial_4(in1,in2(i),in3,in4);
end
Then to save in MS excel file
writematrix([out1, out2, out3, out4], 'filename.xlsx');
0 Kommentare
Weitere Antworten (1)
Jakob B. Nielsen
am 12 Mär. 2020
Bearbeitet: Jakob B. Nielsen
am 12 Mär. 2020
You can achieve this in many ways. The simplest way would be to just create arrays of your input ranges, for example
in2=0:0.001:0.1;
will get you a 1x101 array with values from 0, in increments of 0.001, to 0.1. And then do this for all your inputs. As long as your function Trial_4 can handle elementwise operations (put dots in front of multiplications and powers and such, so instead of in2^2 write in2^.2), then your outputs will also be 1x101 arrays.
In regards to a table, you can either do
table(out1,out2,out3,out4);
and then copy/paste it over from the workspace.
Or simply / more elegantly,
xlswrite('output.xlsx',out1,out2,out3,out4);
Siehe auch
Kategorien
Mehr zu Data Import from MATLAB finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!