我在让 MATLAB 执行我想要的操作时遇到了一些问题。
假设我有一个矩阵 x = [1 2 3 4; 1 4 4 5; 6 4 1 4]
我正在尝试编写将遍历矩阵并将每个 4 更改为 5 的代码,因此它修改了输入矩阵
我已经尝试了一些事情:
while index <= numel(x)
if index == 4
index = 5;
end
index = index + 1;
end
for item = x
if item == 4
item = 5;
end
end
我尝试过的最简单的事情是
for item = x
if item == 4
item = 5;
end
end
通过查看工作区,我注意到 item 的值确实发生了变化,但 x(矩阵)的值保持不变。
如何获得我正在寻找的输出?
最佳答案
如果你只是想改变所有的4
s 至 5
然后:
x(x==4)=5
基本上是x==4
将产生一个逻辑矩阵 1
到处都有4
在x
:
[0 0 0 1
0 1 1 0
0 1 0 1]
然后我们使用 logical index只影响 x
的值那些1
s 全部改成5
如果您想使用循环(我强烈建议不要这样做)来执行此操作,那么您可以这样做:
for index = 1:numel(x)
if x(index) == 4
x(index) = 5;
end
end
关于matlab - 在matlab中使用for循环更改矩阵的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25886745/