Multiple Input/output function to excel
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
采纳的回答
Ameer Hamza
2020-3-12
编辑:Ameer Hamza
2020-3-12
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 个评论
更多回答(1 个)
Jakob B. Nielsen
2020-3-12
编辑:Jakob B. Nielsen
2020-3-12
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);
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!