matlab - 在matlab中使用for循环更改矩阵的元素

标签 matlab loops for-loop matrix

我在让 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到处都有4x :

[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/

相关文章:

matlab - MATLAB 中的低通/带通滤波器设计

image - Matlab颜色量化

linux - 遍历一个表并将该表的信息附加到另一个文件

java - 如何在foreach循环java中返回具有特定字段(函数?)最小值的对象

r - 在 R 中建模无限系列

matlab - 如何在图像中找到局部最大值

algorithm - 使用傅立叶分析将函数拟合到数据

c# - 迭代从 JSON 文件生成的动态对象的问题

java - for 循环外部变量的动态添加和使用 - Selenium

python - 列表中连续对的总和,包括最后一个元素与第一个元素的总和