# arrayfun

Appliquer une fonction à chaque élément d'un tableau.

## 📝 Syntaxe

* B = arrayfun(func, A)
* B = arrayfun(func, A1, ..., An)
* B = arrayfun(..., 'UniformOutput', false)
* \[B1, ..., Bm] = arrayfun(...)

## 📥 Argument d'entrée

* func - handle de fonction à appliquer à chaque élément. Doit renvoyer un scalaire sauf si 'UniformOutput' est false.
* A, A1, ..., An - tableaux d'entrée de même taille.
* 'UniformOutput' - scalaire logique. Si false, les sorties sont renvoyées dans un tableau cellulaire.

## 📤 Argument de sortie

* B, B1, ..., Bm - sorties de la fonction appliquée élément par élément. Tableau cellulaire si 'UniformOutput' est false.

## 📄 Description

arrayfun(func, A) applique la fonctionfunc à chaque élément du tableauA, et renvoie le résultat dans B avec la même taille queA.

arrayfun(func, A1, ..., An) appliquefunc aux éléments correspondants des tableaux d'entrée. Tous les tableaux doivent avoir la même taille.

Utilisez l'option 'UniformOutput' àfalse pour autoriser des valeurs de sortie qui ne peuvent pas être concaténées dans un seul tableau. Dans ce cas, le résultat est un tableau cellulaire.

\[B1, ..., Bm] = arrayfun(...) capture plusieurs sorties de la fonction appliquée.

## 💡 Exemples

Apply mean to structure field

```matlab

S(1).f1 = rand(1, 5);
S(2).f1 = rand(1, 10);
S(3).f1 = rand(1, 15);
means = arrayfun(@(x) mean(x.f1), S);

```

Return multiple outputs from function

```matlab

f = @(x) deal(x, x^2);
[A, B] = arrayfun(f, 1:4);

```

Return variable-sized outputs in a cell array

```matlab

S(1).f1 = rand(3,5);
S(2).f1 = rand(2,6);
A = arrayfun(@(x) mean(x.f1), S, 'UniformOutput', false);

```

## 🔗 Voir aussi

[cellfun](https://nelson-9.gitbook.io/Nelson/markdown/fr/data_structures/cellfun).

## 🕔 Historique

| Version | 📄 Description   |
| ------- | ---------------- |
| 1.14.0  | version initiale |
