Replacing 1 table cell value with a corresponding table cell value

2 views (last 30 days)
I have a table of text characters of length M x N and a corresponding table of the same dimensions. in table 1, i want to replace all cells that contain a 'PXY7' with the corresponding value in Table 2.
For example if cell (A3,B5) in table 1 = 'PXY7' how do i replace this value with table 2's (A3,B5) value?

Accepted Answer

Joel Miller
Joel Miller on 18 Jan 2018
This may not be the fastest method, but it works (I've replaced "PXY7' with 's'):
B1={'a';'s';'b'};
B2={'b';'s';'a'};
B3={'s';'a';'b'};
B4={'a';'b';'s'};
B5={'b';'a';'s'};
Table1=table(B1,B2,B3,B4,B5,'rownames',{'A1';'A2';'A3'});
D1={'1';'3';'2'};
D2={'3';'1';'2'};
D3={'1';'2';'3'};
D4={'3';'2';'1'};
D5={'3';'1';'2'};
Table2=table(D1,D2,D3,D4,D5,'rownames',{'C1';'C2';'C3'});
T1vars=Table1.Properties.VariableNames;
T2vars=Table2.Properties.VariableNames;
for k=1:length(T1vars)
T1index=ismember(Table1.(T1vars{k}),'s');
Table1.(T1vars{k})(T1index)=Table2.(T2vars{k})(T1index);
end
  3 Comments
Joel Miller
Joel Miller on 18 Jan 2018
It is difficult to know where the problem lies, not knowing what IDX_IND is. Would you write IDX_IND out explicitly?
Matt Brianik
Matt Brianik on 18 Jan 2018
here is the file i pulled it from, its just a test file, i think i figured out the issue though, thanks for your helkp

Sign in to comment.

More Answers (1)

Matt Brianik
Matt Brianik on 18 Jan 2018
Whenever this code runs it replaces values the way it should, but every time it moves over 1 column, it goes down 1 position in a row.
the results look like this
X B C
X Z C
X Z Y
A Z Y
A B Y
when they should look like
X Z Y
X Z Y
X Z Y
A B C
A B C

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!