MATLAB Answers

0

Comparing the two structure

Latest activity Edited by Guillaume
on 18 Jun 2015
I need to compare the two structure and remove the matching fieldname. Is it possible?
How can i do it?
Thanks a lot

  2 Comments

Yes.It can be done.
How to do it?? Thanks

Sign in to comment.

2 Answers

Answer by B.k Sumedha on 18 Jun 2015
Edited by B.k Sumedha on 18 Jun 2015
 Accepted Answer

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 Comments

Guillaume
on 18 Jun 2015
If the question is indeed about structures, then this answer is way off the mark! See Azzi's answer for the correct solution.
Cant isequlan function compare two structures??
Guillaume
on 18 Jun 2015
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.

Sign in to comment.


Answer by Azzi Abdelmalek
on 18 Jun 2015

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)

  1 Comment

Sign in to comment.