Replace array elements with another small array using indexing

2 visualizaciones (últimos 30 días)
TEJAS PHUTANE
TEJAS PHUTANE el 19 de Mayo de 2020
Comentada: TEJAS PHUTANE el 19 de Mayo de 2020
Hi everyone,how to replace array with another small array using indexing
a=[1 1 4 1 3 3 1 1 1 3 4 1 0 0 0 0 0 0 0 0 0];
%replace 1 4 1 with 0 3 0 and 3 4 1 with 2 and b=b(b~=0); to get a new vector
b=[1 3 3 3 1 1 1 2];
Thank you.
  3 comentarios
TEJAS PHUTANE
TEJAS PHUTANE el 19 de Mayo de 2020
I want to do it both ways, replace with 3 or with 0 3 0 and use b=b(b~=0); to get a new array without 0.
TEJAS PHUTANE
TEJAS PHUTANE el 19 de Mayo de 2020
%my code:
path=[1 1 4 1 3 3 1 1 1 3 4 1 0 0 0 0 0 0 0 0];
p=path;
n=length(p);
for i=1;i=n-3;i=i+1;
if ( p(i)==1 && p(i+1)==4 && p(i+2)==1)
p(i:i+2)= [0 3 0];
end
end
p=p(p~=0);
still not getting desired output

Iniciar sesión para comentar.

Respuestas (1)

Matt J
Matt J el 19 de Mayo de 2020
b=strrep( strrep(a,[1 4 1],3) ,[3 4 1],2)
  2 comentarios
TEJAS PHUTANE
TEJAS PHUTANE el 19 de Mayo de 2020
this actually works but a warning occurs:Inputs must be character vectors, cell arrays of character vectors, or string arrays.
TEJAS PHUTANE
TEJAS PHUTANE el 19 de Mayo de 2020
if instead of integers i have character vector like
path=["L" "L" "U" "L" "S" "S" "L" "L" "L" "S" "U" "L" "0" "0" "0" "0" "0" "0" "0" "0"];
how can i get shortest path (for line maze) eg: replace L U L with S and S U L with R.
shortpath=["L" "S" "S" "S" "L" "L" "L" "R"];

Iniciar sesión para comentar.

Categorías

Más información sobre Characters and Strings en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by