How to replace the matching cell

Hi,
I have the below cell matrix,
pass OK Out OK OK Out
pass OK Out OK OK Out
fail OK Out OK OK Out
pass OK Out OK OK Out
pass OK Out OK OK Out
fail OK Out OK OK Out
If in first column of particular row is "fail" then replace the Out as "Outspec". Kindly someone help how to do this.

4 comentarios

Stephen23
Stephen23 el 8 de Ag. de 2016
@Mekala balaji: please show us the desired output as well.
My output should be:
pass OK Out OK OK Out
pass OK Out OK OK Out
fail OK OutSpec OutSpec OK OutSpec
pass OK Out OK Out Out
pass OK Out OK OK Out
fail OK OutSpec OutSpec OutSpec OutSpec
Stephen23
Stephen23 el 8 de Ag. de 2016
Editada: Stephen23 el 8 de Ag. de 2016
Your input and output arrays do not match, according to your description: your output has "Out" in position (4,5), but the input does not. Where does this "Out" come from ?
Also in columns four and five you have three "OutSpec", but your input array does not show any "Out"s in those columns, as they both contain only "OK"s, and you did not mention that you want to do anything with "OK". Where did these "OutSpecs"s come from?
Mekala balaji
Mekala balaji el 9 de Ag. de 2016
Editada: Walter Roberson el 9 de Ag. de 2016
Sir,
below is my modified input ( I forgot to show this, which is given below):
pass OK Out OK OK Out
pass OK Out OK OK Out
fail OK Out Out OK Out
pass OK Out OK Out Out
pass OK Out OK OK Out
fail OK Out Out Out Out

Iniciar sesión para comentar.

 Respuesta aceptada

Stephen23
Stephen23 el 8 de Ag. de 2016
Editada: Stephen23 el 8 de Ag. de 2016
This might do what you want:
inp = {...
'pass','OK','Out','OK','OK','Out';...
'pass','OK','Out','OK','OK','Out';...
'fail','OK','Out','Out','OK','Out';...
'pass','OK','Out','OK','OK','Out';...
'pass','OK','Out','OK','OK','Out';...
'fail','OK','Out','Out','Out','Out';...
}; % from your comment above
out = inp;
idx = strcmp(out(:,1),'fail');
out(idx,2:end) = strrep(out(idx,2:end),'Out','OutSpec')
output:
out =
'pass' 'OK' 'Out' 'OK' 'OK' 'Out'
'pass' 'OK' 'Out' 'OK' 'OK' 'Out'
'fail' 'OK' 'OutSpec' 'OutSpec' 'OK' 'OutSpec'
'pass' 'OK' 'Out' 'OK' 'OK' 'Out'
'pass' 'OK' 'Out' 'OK' 'OK' 'Out'
'fail' 'OK' 'OutSpec' 'OutSpec' 'OutSpec' 'OutSpec'

Más respuestas (1)

Walter Roberson
Walter Roberson el 6 de Ag. de 2016
mask = strcmp(YourCell(:,1), 'fail');
YourCell(mask,[3 6]) = {'Outspec'};

3 comentarios

Mekala balaji
Mekala balaji el 6 de Ag. de 2016
Sir,
I only want to replace "Out" as "Outspec", not entire row.
Walter Roberson
Walter Roberson el 6 de Ag. de 2016
The entire row is not changed. Only columns 3 and 6 are changed. Did you try the code?
Sir,
The "Out" is not fixed (it vary, not only in column 3&6). The modified input is below, and in "fail" row, just only replace "Out---> OutSpec"
pass OK Out OK OK Out
pass OK Out OK OK Out
fail OK Out Out OK Out
pass OK Out OK Out Out
pass OK Out OK OK Out
fail OK Out Out Out Out

Iniciar sesión para comentar.

Preguntada:

el 6 de Ag. de 2016

Editada:

el 9 de Ag. de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by