gpt4 book ai didi

matlab - 向量化 IF 语句

转载 作者:行者123 更新时间:2023-12-02 07:25:20 25 4
gpt4 key购买 nike

我正在尝试在 Matlab 中向量化 if 语句,但我不确定该怎么做。我想为正值分配一个“N”,为负值分配一个“S”。我想避免 for 循环,但这是我的代码:

LatDD = [23.0,12.3,-43.2,9.9,-40.7];
LatDir = ['' '' '' '' ''];
if (LatDD < 0)
LatDir = 'S'
else
LatDir = 'N'
end

显然,这并没有达到我想要的效果,因为它实际上只检查了 LatDD 的第一个元素。我可以很容易地做一个 for 循环,但我希望它被矢量化。我尝试了逻辑索引,但得到的只是另一个带有零或 1 的向量,无论如何我都必须用 for 循环检查它。

最佳答案

你可以在这里使用逻辑索引,你只需要做两次

LatDD = [23.0,12.3,-43.2,9.9,-40.7];
LatDir = ['' '' '' '' ''];

LatDir(LatDD < 0) = 'S';
LatDir(LatDD >= 0) = 'N';

因为你在这里有一个二元选择,你甚至可以跳过一个步骤,用所有的 'N' 预填充 LatDir 并只更改与负 对应的那些LatDD 值到 'S'

LatDD = [23.0,12.3,-43.2,9.9,-40.7];
LatDir = ['N' 'N' 'N' 'N' 'N'];

LatDir(LatDD < 0) = 'S';

关于matlab - 向量化 IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32960855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com