'equal' operator does not work on tables

4 views (last 30 days)
Tobias Kleinert
Tobias Kleinert on 11 May 2022
Commented: Tobias Kleinert on 11 May 2022
Hi all,
I have a 14x9 table called TABLE (it is type table) containing variables of different types (strings and numbers) in each of the 9 columns. Now i would like to apply an 'if' function to the table, which loops over the 14 rows of the table in column 9, and writes ones in a NEWFILE for values = 1, and zeros otherwise. The problem is that I get the error message:
Incorrect use of '=' operator. Assign a value to a variable using '=' and compare values for equality using '=='.
Here's what I got:
for TABLEheight = 1:height(TABLE) %loop through rows of TABLE
if (TABLE(TABLEheight,9)) = 1 %if rule applies...
NEWFILE(TABLEheight,1) = 1 %write ones in NEWFILE
else
NEWFILE(TABLEheight,1) = 0 %otherwise write zeros
end
end
So the main problem I have is that I can't use the = operator using tables. Any ideas how I can solve this problem?
Thanks,
Tobi

Answers (1)

KSSV
KSSV on 11 May 2022
You need not to un a loop. You can get it with one go using ==. Let T1, T2 be your tables, and you want to comapare 9 the column.
idx = T1.(9)==T2.(9)
  2 Comments
Tobias Kleinert
Tobias Kleinert on 11 May 2022
Here's the table I use (it's different from the exemplary table I posted earlier). The relevant column is column 9 (urevent), where I look for ones. I want a new table (or other type) that displays 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 in the first column (as there is indeed a 'one' somewhere in column 9 of the original table. Hope this makes my question more understandable?

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!