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

1 回表示 (過去 30 日間)
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
Stephen23 2021 年 5 月 25 日
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 件のコメント
Wolfgang McCormack
Wolfgang McCormack 2021 年 5 月 28 日
@Stephen Cobeldick thank you. So just a quick question, does the first line multiply the entire A's members by eqB? or just the ones above 50?
Now, in the last line, Z all those mathcing X condition will be multiplied by eqA. but is the final matrix a compiled matrix of all Z mutiplied by eqB and eqA? or should I compile/join it manually?
Stephen23
Stephen23 2021 年 5 月 29 日
編集済み: Stephen23 2021 年 5 月 29 日
"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.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeData Import from MATLAB についてさらに検索

製品


リリース

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by