How do I replace a value in a matrix at a certain point?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Clayton
am 14 Okt. 2014
Kommentiert: Stephen23
am 14 Okt. 2014
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 Kommentare
Akzeptierte Antwort
Guillaume
am 14 Okt. 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 Kommentar
Stephen23
am 14 Okt. 2014
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Matrix Indexing 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!