Skip to content

Commit 2e6ba32

Browse files
Maximilian-Stefan-Ernstalyst
authored andcommitted
add function param_indices
1 parent dc4fef6 commit 2e6ba32

2 files changed

Lines changed: 18 additions & 0 deletions

File tree

src/StructuralEquationModels.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ export AbstractSem,
155155
RAMMatrices,
156156
params,
157157
nparams,
158+
param_indices,
158159
fit_measures,
159160
AIC,
160161
BIC,

src/types.jl

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,23 @@ nparams(model::AbstractSem) = length(params(model))
2929

3030
params(model::AbstractSemSingle) = params(model.imply)
3131
nparams(model::AbstractSemSingle) = nparams(model.imply)
32+
"""
33+
param_indices(semobj)
34+
param_indices(param_names, semobj)
35+
36+
Returns either a dict of parameter names and their indices in `semobj`.
37+
If `param_names` are provided, returns a vector their indices in `semobj` instead.
38+
39+
# Examples
40+
```julia
41+
parind = param_indices(my_fitted_sem)
42+
parind[:param_name]
43+
44+
parind = param_indices([:param_name_1, param_name_2], my_fitted_sem)
45+
```
46+
"""
47+
param_indices(semobj) = Dict(params(semobj) .=> 1:nparams(semobj))
48+
param_indices(param_names, semobj) = getindex.([Dict(params(semobj) .=> 1:nparams(semobj))], param_names)
3249

3350
"""
3451
SemLoss(args...; loss_weights = nothing, ...)

0 commit comments

Comments
 (0)