Filter löschen
Filter löschen

Replacing 1 table cell value with a corresponding table cell value

2 Ansichten (letzte 30 Tage)
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?

Akzeptierte Antwort

Joel Miller
Joel Miller am 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 Kommentare
Joel Miller
Joel Miller am 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 am 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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Matt Brianik
Matt Brianik am 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

Kategorien

Mehr zu Characters and Strings finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by