Comparing the two structure

645 ビュー (過去 30 日間)
Gopalakrishnan venkatesan
Gopalakrishnan venkatesan 2015 年 6 月 18 日
コメント済み: Arwel 2021 年 11 月 25 日
I need to compare the two structure and remove the matching fieldname. Is it possible?
How can i do it?
Thanks a lot
  2 件のコメント
B.k Sumedha
B.k Sumedha 2015 年 6 月 18 日
Yes.It can be done.
Gopalakrishnan venkatesan
Gopalakrishnan venkatesan 2015 年 6 月 18 日
How to do it?? Thanks

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

採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2015 年 6 月 18 日
a=struct('field1',1,'field2',2,'field3',5)
b=struct('field1',3,'field3',4,'field4',6)
f1=fieldnames(a)
f2=fieldnames(b)
f=intersect(f1,f2)
a=rmfield(a,f)
b=rmfield(b,f)
  2 件のコメント
Gopalakrishnan venkatesan
Gopalakrishnan venkatesan 2015 年 6 月 18 日
Thank u
Arwel
Arwel 2021 年 11 月 25 日
nice..

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

その他の回答 (1 件)

B.k Sumedha
B.k Sumedha 2015 年 6 月 18 日
編集済み: B.k Sumedha 2015 年 6 月 18 日
U can use the isequal command to compare between structs.
tf = isequaln(A,B)
And if the result is 1,u can remove those fieldname like for example:
function B = column_removal(A,n)
A = [1 2 3; 4 5 6];
n=2;
A(:,n)=[];
B = A;
end
In this example u will be removing the 2nd coulmn.
  3 件のコメント
B.k Sumedha
B.k Sumedha 2015 年 6 月 18 日
Cant isequlan function compare two structures??
Guillaume
Guillaume 2015 年 6 月 18 日
編集済み: Guillaume 2015 年 6 月 18 日
Yes, it can, and it will tell you whether the two structures have the exact same field names and field values.
It won't give you the list of fields that have the same name.
Your example of column removal has nothing to do with structures.
Note: I'm not belittling your answer as the OP is obviously happy with it since he accepted it. But if somebody searches the forum for a way to remove matching field names, I'd rather they went to the correct answer to that problem.

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

カテゴリ

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

Community Treasure Hunt

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

Start Hunting!

Translated by