Add new variable to table based on condition

6 次查看(过去 30 天)
Hi,
I apologize for the newbie question but how does one add a variable to a table in Matlab based on conditions applied to other variables ?
For example, in the code below if t.y < 4 & t.y > 2 then 'A' should be stored in a new collumn t.z. Which doesnt work. Any ideas ?
y = [1 2 3 4];
x = [5 6 7 8];
t = table(x', y', 'VariableNames', {'x', 'y'})
if t.y < 4 & t.y > 2
t.z = 'A'
end
  5 个评论
Bob Thompson
Bob Thompson 2019-6-27
Would using a logic index range for an undefined variable work though? I would think that if t.z didn't exist already then you would still run into the same issue Blue has. I get that the range covers a set of elements the same size as the other variables, but what values are entered for mask == 0? Do they just get created as empty? Is that allowed in a table?
Adam Danz
Adam Danz 2019-6-27
Yes, mask=0 elements are merely empty strings ('')
y = [1 2 3 4];
x = [5 6 7 8];
t = table(x', y', 'VariableNames', {'x', 'y'})
mask = t.y > 2 & t.y < 4;
t.z(mask) = 'A';
t =
4×3 table
x y z
_ _ _
5 1
6 2
7 3 A
8 4

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Tables 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by