comparing table values using isequal

111 ビュー (過去 30 日間)
Jakub Steiner
Jakub Steiner 2020 年 9 月 15 日
コメント済み: Cris LaPierre 2020 年 9 月 15 日
Hi,
I have a table M. The second column contains either the letter 's' or letter 'f'.
I would like to put all the rows with the letter 'f' in the second column into a new table A with the following code
pocet_radku = height(M);
j=1;
for i=1:pocet_radku
TF = isequal ("M(i,2)",'f')
if TF == 1
A(j,:)= M(i,:);
j = j+1;
else
end
end
Unfortunatelly, the isequal function return only zeros. Any idea why? In there syntax error that I'm not aware of?
Testing in a command window:
>> isequal ("M(180,2)",'f')
ans =
logical
0
>> M(180,2)
ans =
table
Var2
_____
{'f'}
Thanks a lot for any answers

採用された回答

Cris LaPierre
Cris LaPierre 2020 年 9 月 15 日
編集済み: Cris LaPierre 2020 年 9 月 15 日
This can be done much simpler. Try something like this.
A = M(M{:,2}=="f",:);
  2 件のコメント
Jakub Steiner
Jakub Steiner 2020 年 9 月 15 日
Nice! Works as well and without my clumsy cycles.
Thanks a lot!
Cris LaPierre
Cris LaPierre 2020 年 9 月 15 日
This can be made even simpler by using the variable name:
A = M(M.Var2=="f",:);

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

その他の回答 (2 件)

Fangjun Jiang
Fangjun Jiang 2020 年 9 月 15 日
編集済み: Fangjun Jiang 2020 年 9 月 15 日
try TF = isequal (M.Var2{i},'f')
  1 件のコメント
Jakub Steiner
Jakub Steiner 2020 年 9 月 15 日
Works! Thank you a lot

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


BOB MATHEW SYJI
BOB MATHEW SYJI 2020 年 9 月 15 日
Instead of
TF = isequal ("M(i,2)",'f')
try,
TF = strcmp (M.2nd_variable,'f')

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

製品


リリース

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by