# How to create corresponding equation in a column based on the value of previous column? (Similar to drag in Excel)

1 visualización (últimos 30 días)
Wolfgang McCormack el 24 de Mayo de 2021
Editada: Stephen23 el 29 de Mayo de 2021
Hi all,
Imagine we have a 1000 x 3 matrix named A. I want to have a specific equation such as A(1,1) * by EquationA if the value in A(1,1) is less than 50 and A(1,1) * by EquationB if the value in A(1,1) is greater than or equal to 50. Then, drag this logic for the entire 1000 rows similar to Excel. How should I do this?
##### 0 comentariosMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos

Iniciar sesión para comentar.

Stephen23 el 25 de Mayo de 2021
The MATLAB approach would be to use logical indexing:
For example,assuming that your "equations" are actually vectorized functions:
Z = eqB(A(:,1));
X = A(:,1)<50; % logical vector
Z(X) = eqA(A(X,1))
##### 2 comentariosMostrar 1 comentario más antiguoOcultar 1 comentario más antiguo
Stephen23 el 29 de Mayo de 2021
Editada: Stephen23 el 29 de Mayo de 2021
"So just a quick question, does the first line multiply the entire A's members by eqB? or just the ones above 50?"
All of them.
"but is the final matrix a compiled matrix of all Z mutiplied by eqB and eqA? or should I compile/join it manually?"
You do not need to join anything manually, the indexing already "joins" the data:
Z(X) = eqA...
% ^ this indexing combines the eqA data into the eqB data.

Iniciar sesión para comentar.

### Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

R2020b

### Community Treasure Hunt

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

Start Hunting!