Azzera filtri
Azzera filtri

Creating two arrays using Arrayfun

1 visualizzazione (ultimi 30 giorni)
Alexi
Alexi il 28 Gen 2023
Modificato: dpb il 28 Gen 2023
How can I create two array sets with Arrayfun, I am getting an error with this code structure. thanks
%%Simulink Matlab function Block
function [y,x]=fcn(Az,sm,del,w0,gama,wc,D_ws,e,n_xs,n_ys,n_zs,om,s)
a= 1:1:100;
vc=1:1:100;
y=arrayfun(@fcn,mod(a,10)+1,fix((a-1)./10)+1);
x=arrayfun(@fcn,fix((vc-1)./10)+1);
function [b,c]=fcn(ns,nb,nc)
k_x=0.01;
k_y=0.01;
b=-w0*cos(gama(nb))+ (wc-k_x*w0)*cos(gama(nb)) * (e*cosd(Az(nb))+sm(ns)*cosd(Az(nb)+del(nb))) + ((D_ws+k_y*w0)*cos(gama(nb))) * (e*sind(Az(nb))+sm(ns)*sind(Az(nb)+del(nb)));
c=-n_xs*sin(gama(nc))*cosd(Az(nc)+del(nc)) + n_ys*sin(gama(nc)) * sind(Az(nc)+del(nc)) + n_zs*cos(gama(nc)) + (e/om) * (cos(gama(nc)) * (s(2) * cosd(Az(nc)) + s(1)*sind(Az(nc))) - sin(gama(nc))*sin(del(nc))*(s(3)-om));
end
end
  6 Commenti
dpb
dpb il 28 Gen 2023
Modificato: dpb il 28 Gen 2023
Assuming x, y are commensurately-sized arrays, the above would appear to be equivalent to
f=repmat(x(:),m,1)+y(:);
which would be "the MATLAB way"...
Alexi
Alexi il 28 Gen 2023
Thanks for your replies, I'll review it again.

Accedi per commentare.

Risposte (0)

Categorie

Scopri di più su MATLAB in Help Center e File Exchange

Prodotti


Release

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by