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

2 views (last 30 days)
Wolfgang McCormack on 24 May 2021
Edited: Stephen23 on 29 May 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?

Stephen23 on 25 May 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 CommentsShowHide 1 older comment
Stephen23 on 29 May 2021
Edited: Stephen23 on 29 May 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.

R2020b

### Community Treasure Hunt

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

Start Hunting!