How do I replace a value in a matrix at a certain point?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I'm trying to identify where the certain character is in my matrix and replace that character based on user input at that location. I cannot figure out a command that will work but this is what I have so far.
move = input('Your move?(a,w,d,q)','s');
switch (move)
case 'a'
find(world == 'v')
[r,c] = find(world == 'v')
for world = 'v'
world(r,c) = '>'
end
for world = '^'
world(r,c) = '<'
end
for world = '<'
world(r,c) = 'v'
end
for world = '>'
world(r,c) = '^'
end
0 commentaires
Réponse acceptée
Guillaume
le 14 Oct 2014
I'm afraid the code you show makes no sense at all.
To find something in a matrix, you indeed use find. Once you've found where it is, it's a simple matter of indexing to put a new value there
idx = find(m == searchvalue); %don't use [r,c] if there's going to be more than one found value
m(idx) = newvalue;
Maybe, what you're trying to do is this?
idx = find(world == 'v');
switch(move)
case 'a'
world(idx) = '<';
case 'w'
world(idx) = '^';
case 's'
world(idx) = 'v';
case 'd'
world(idx) = '>';
end
1 commentaire
Stephen23
le 14 Oct 2014
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Matrix Indexing dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!