# log

Natural logarithm of 2-D scattering transform

## Syntax

``slog = log(sf,s)``
``ulog = log(sf,u)``
``xlog = log(sf,x)``

## Description

````slog = log(sf,s)` returns the natural logarithm of the scattering coefficients in the cell array `s`. `s` is the output of `scatteringTransform` and is a cell array of structure arrays with an `images` field.The precision of `slog` depends on the precision specified in the framework `sf`.```
````ulog = log(sf,u)` returns the natural logarithm of the scalogram coefficients in the cell array `u`. `u` is the output of `scatteringTransform` and is a cell array of structure arrays with a `coefficients` field.The precision of `ulog` depends on the precision specified in the framework `sf`.```

example

````xlog = log(sf,x)` returns the natural logarithm of the 3-D matrix or 4-D tensor `x`. `x` is the output of `featureMatrix`.The precision of `xlog` depends on the precision specified in the framework `sf`.```

## Examples

collapse all

This example shows how to obtain the natural logarithm of scattering coefficients.

Load the `xbox` image. Create an image scattering framework that can be applied to the image.

```load xbox sf = waveletScattering2('ImageSize',size(xbox),... 'InvarianceScale',min(size(xbox)))```
```sf = waveletScattering2 with properties: ImageSize: [128 128] InvarianceScale: 128 NumRotations: [6 6] QualityFactors: [1 1] Precision: "single" OversamplingFactor: 0 OptimizePath: 1 ```

Obtain the scattering transform of the image and then the natural logarithm of the scattering coefficients. Display the number of rows in the table containing the first-order scattering coefficients.

```S = scatteringTransform(sf,xbox); Slog = log(sf,S); coefOrder = 1; display(['Number of rows: ',num2str(size(S{coefOrder+1},1))])```
```Number of rows: 30 ```

Choose a row from the first-order scattering coefficients table. Take the natural logarithm of the absolute value of the scattering coefficients in that row. Compare with the corresponding row in `Slog` and confirm they are equal.

```row = 11; tmp1 = Slog{coefOrder+1}.images{row}; tmp2 = log(abs(S{coefOrder+1}.images{row})); disp(['Max Difference of Scattering Coefficients: '... num2str(max(abs(tmp1(:)-tmp2(:))))])```
```Max Difference of Scattering Coefficients: 0 ```

## Input Arguments

collapse all

Scattering decomposition framework, specified as a `waveletScattering2` object.

Scattering coefficients, specified as a cell array of structure arrays. `s` is the output of `scatteringTransform` for the image scattering decomposition framework `sf`.

Scalogram coefficients, specified as a cell array of structure arrays. `u` is the output of `scatteringTransform` for the image scattering decomposition framework `sf`.

Scattering feature matrix, specified as a real-valued 3-D matrix or a real-valued 4-D tensor. `x` is the output of `featureMatrix` for the image scattering decomposition framework `sf`.

## Output Arguments

collapse all

Natural logarithm of scattering coefficients, returned as a cell array. The dimensions of `slog` are equal to the dimensions of `s`.

The precision of `slog` depends on the precision specified in the framework `sf`.

Natural logarithm of scalogram coefficients, returned as a cell array. The dimensions of `ulog` are equal to the dimensions of `u`.

The precision of `ulog` depends on the precision specified in the framework `sf`.

Natural logarithm of scattering feature matrix, returned as a real-valued matrix or tensor. The dimensions of `xlog` are equal to the dimensions of `x`.

The precision of `xlog` depends on the precision specified in the framework `sf`.

## Algorithms

`log` returns the natural logarithm of the absolute value of the input argument. 