Loop through multiple columns in table using if condition
8 次查看(过去 30 天)
显示 更早的评论
I have a large table, let's call it X, with many rows and columns. I want to loop through 10 columns (named X.A, X.B, X.C, etc.), and when all of the 10 columns for a specific row have the value NaN, I want a 0 in the column X.result, and when at least one or more of the columns has a value (an integer), I want it to return a 1 in the column X.result.
I tried to create this with looping through 1 column first and add more after, but I can't seem to manage it to work:
for i = 1:length(X.result)
if (~isnan((X.A)))
X.result(i) = 1;
end
end
I think I might be doing something wrong in defining variables but I can't seem to figure it out. The first line after the if statement ( if (~isnan((X.A))) ) works, but no 0 or 1 is assigned to the X.result column. Can anybody help me with this? Thanks!
0 个评论
采纳的回答
VBBV
2023-1-6
X.A = [randi([0 10],1,7) NaN]
X.B = repmat(NaN,1,8);
for i = 1:length(X.A)
if (isnan(X.A(i)) & isnan(X.B(i)))
X.result(i) = 0;
elseif ~isnan(X.A(i)) | ~isnan(X.B(i))
X.result(i) = 1;
end
end
[X.A.', X.B.', X.result.']
2 个评论
VBBV
2023-1-6
extend the condition /check you have inside the loop, upto 10 columns as
if (isnan(X.A(i)) & isnan(X.B(i))) & isnan(X.C(i)) ... so on
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Graphics Object Programming 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!