Applying function to all cells in a matrix using it as a reference

Good day to everyone,
I've run into a problem which is best described using the following example. Given Matrix A which is defined as
% code
A=[.9 .8 .7
.6 .5 .4];
I need to transform all cells within the aforementioned Matrix A according to the following formula (Fisher's Z transformation)
where a is each cell in Matrix A. I want to create a matrix B where this is the result of this computation. The resulting matrix B would be
if true
% code
B=[1.47 1.09 0.86
0.69 0.54 0.42]
end
Here is the calculation which yielded the last data entry in matrix B

 Respuesta aceptada

Yes, and so what heppened when you typed that exactly into MATLAB like this:
format short g;
A=[.9 .8 .7
.6 .5 .4];
Z = 0.5 * log((1+A) ./ (1-A))
Did you see something that you did not expect? Or you didn't know ln was done by the log() function? Or you didn't know how to use ./ or parentheses? It's only one line of code virtually identical to your formula, so where are you having trouble?

3 comentarios

P.S. Let's not call "elements" "cells" because "cells" are a certain type of variable that is well described here.
Andrew Lapointe
Andrew Lapointe el 5 de Dic. de 2014
Editada: Andrew Lapointe el 5 de Dic. de 2014
Thank you for correcting my terminology, I will change the terms in the question. This works can you please explain why you added a period in your formula?
That does an "element-by-element" divide, rather than a matrix divide. Same as with .* and * - you know what a matrix multiply is, right? And that's different than if you must multiply a(1,1) by b(1,1) and a(2,1) by b(2,1). Matrix multiple multiplies a row by a column and then sums. It's very different.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Preguntada:

el 5 de Dic. de 2014

Comentada:

el 5 de Dic. de 2014

Community Treasure Hunt

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

Start Hunting!

Translated by