arrays - 根据应用于另一个向量的条件创建向量

标签 arrays excel matlab if-statement conditional-statements

我对 Matlab 很陌生。这似乎是一件简单的事情,我确信我缺乏经验,所以提前道歉。

基本上,我想使用两行中的信息来覆盖另一行中的数据。

我有两行数据输出,例如:

B = [1 2 3 4 1 2 3 4]
C = [0 1 1 0 0 0 1 0]

然后我设置新的行 D 和 E,它们将用于新的基于规则的输出:

D=nan(1,8);
E=nan(1,8);

我想用 C 中的值覆盖对应于 B 值的 D/E 单元格:

例如,对于 B = 1,我想得到:

D= [0 nan nan nan 0 nan nan nan]

对于 B = 3 我想要:

E= [nan nan 1 nan nan nan 1 nan]

我当前的尝试是这样的(但它不起作用):

for D= 1:8
if B(n) == 1;
 D(n)=C(n);
elseif B(n) == 3;
 E(n)=C(n);
end
end

注意:如果我在 Excel 中执行此操作,我将使用它来创建 D(复制所有行):

D1=IF(B1=1,C1,"nan")

任何帮助都将非常感激!

最佳答案

就这么简单:

你的向量:

B = [1 2 3 4 1 2 3 4]
C = [0 1 1 0 0 0 1 0]
D = NaN(1,8)
E = NaN(1,8)

然后应用:

D(B==1) = C(B==1)
E(B==3) = C(B==3)

你会得到:

D =    0   NaN   NaN   NaN     0   NaN   NaN   NaN


E =  NaN   NaN     1   NaN   NaN   NaN     1   NaN

关于arrays - 根据应用于另一个向量的条件创建向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22986783/

相关文章:

python - 如何在python中将数据帧转换为数组?

c++ - 将 bool 数组视为二进制递增

php - 如何使用 PhpSpreadSheet 折线图在每个标记中设置可见数据标签?

java - 具有可调整数组大小的 toString 方法

c++ - 将动态二维数组在 C++ 和 Fortran 之间传递

javascript - ExcelJS 卡住行

arrays - 如何通过 VBA 函数填充 Excel 工作表中的单元格?

matlab - 用matlab画谢尔宾斯基三角形的高效代码

matlab - Matlab中的填充半圆

matlab - MATLAB 中的曲线拟合,对于超过 8 项的正弦函数?