Append new column considering the distribution of the elemnts in a column

1 回表示 (過去 30 日間)
Maria
Maria 2014 年 8 月 18 日
コメント済み: Maria 2014 年 8 月 18 日
I have a cell type variable with 20000 rows and 9 columns. For example:
c3
A={ 4197 0 53,0 15 28 254 90202 1996 0
4207 0 45,1 11 62 1762 80402 1996 0
4215 0 15,4 10 49 279 100301 1996 1
4220 0 51,4 7 54 308 80402 1996 0
4221 0 7,6 19 69 100 60110 1996 1
Considering c3, I previously appended a new column to variable A that has the value of 1 if the value in c3 corresponds to the bottom 5th percentile of all the values in c3 and zero otherwise. I am now trying to append another column that has the value of 1 if the value in c3 is in between the 5th to 10th percentile of all the values in c3 and zero otherwise. I tried to apply the previuos code I used by adding the condition 'greater than' (<):
p10Val1 = prctile( [A{:,3}], [10] );
A(:,end+1) = {0}
A(p5Val1< [A{:,3}] <= p10Val1, end ) = {1}
But it is not working.
Can someone help? Thank you.
  2 件のコメント
Adam
Adam 2014 年 8 月 18 日
Please try to use . rather than , in pasting data like that in future. It isn't a big issue, it is just that little bit easier for someone to help you if they can just paste straight from your question into Matlab!
Maria
Maria 2014 年 8 月 18 日
You are right. When I copy paste the values they get commas and I forget to change, I am sorry and thank you for the correction.

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

採用された回答

Adam
Adam 2014 年 8 月 18 日
A(p5Val1< [A{:,3}] & [A{:,3}] <= p10Val1, end ) = {1}
You can't use 0 < x < 1 type maths in a Matlab expression, you have to AND together the two components. In this case using & rather than &&.

その他の回答 (0 件)

製品

Community Treasure Hunt

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

Start Hunting!

Translated by