How can I set a matrix value to equal a non-numeric coordinate?

1 次查看(过去 30 天)
For example, if part of a matrix equals 3, I want that coordinate to be (a,b). Then I want to be able to use that coordinate to change other values, such as writing (a,b+1)=4, to change the value in the next column to 4, or (a-1,b)=7 to change the value in the row above to 7.
Thanks.
This is what I've attempted and doesn't work:
clear, clc
x = randi(10,10);
x(x==3) = x(a,b);
Undefined function or variable 'a'.
Error in Lab4 (line 4)
x(x==3)=x(a,b);

回答(1 个)

madhan ravi
madhan ravi 2019-5-17
编辑:madhan ravi 2019-5-17
[a,b]=find(x==3)% I don't see the point of this if your assigning the same value
x==3 % is already sufficient and efficient for indexing
  2 个评论
Liam Vella
Liam Vella 2019-5-17
When I write
clear, clc
x = randi(10,10);
[a,b] = find(x==3)
[a-1,b] = 7;
It doesn't work and the coordinate is not set to equal 7,
Why?
madhan ravi
madhan ravi 2019-5-17
编辑:madhan ravi 2019-5-17
What is that your trying to do ? Write your expected result explicitly with a 3 by 3 matrix. the expression a-1 will error out if a is one.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by