dot indexing in a function handle

7 次查看(过去 30 天)
Hi all,
Is it possible to use dot indexing in a function handle? Or at least ignore an output?
Please look at the code below.
clear
clc
close
format shortG
P = 100;
vel = 1.5066e+03;
omegab = 0;
L = 30480;
E = 200000;
I = 1.6253e6;
b = 2438;
h = 20;
A = b * h;
rho = 7.8E-9;
jmax = 5;
varMean = [P vel];
varStd = abs([0.15 0.15] .* varMean);
varDist = ["normal","normal"];
g = @(X) 1.76 - beamUnderMovingLoad(X(1),X(2),L,E,I,omegab,rho,A,jmax);
inputs = struct('means', varMean, 'stds', varStd, 'dists', varDist, 'g_func', g, 'N', 10000);
output = monteCarloSimulation(inputs)
output.Pf
output.Beta
It runs properly when the function 'beamUnderMovingLoad()' has only one output, but Id like to select the output in the 'g' function.
Trust all clear!

采纳的回答

Rik
Rik 2023-3-10
编辑:Rik 2023-3-10
You will have to write a wrapper that can select an output for you. There is no built-in functionality to do so.
Some like this should work:
function out=output_selector(fun,k,varargin)
% Select the k-th output variable given some input.
% The first input should be a function handle. Any inputs required for the
% function can provided as extra arguments.
out = cell(1,k);
[out{:}]=fun(varargin{:});
out = out{end};
end
  8 个评论
Geovane Gomes
Geovane Gomes 2023-3-10
Wow!!!
Now it works perfect!
i really appreciate your help

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Get Started with MATLAB 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by