假设我有矩阵A:
A =
1 2 3
4 5 6
Run Code Online (Sandbox Code Playgroud)
对于每个元件x<2,加10,
对每一个元素x>5,添加20,和
对于每个元素2<=x<=5,添加30.
所以对于我的示例矩阵A,我需要得到以下矩阵B:
B =
11 32 33
34 35 26
Run Code Online (Sandbox Code Playgroud)
我需要能够以一般方式执行此操作,因为实际矩阵将非常大.有什么建议?我可以使用该IF声明吗?
我不明白如何在不使用if语句或循环的情况下完成这个问题.
n = input ('What is the vector length? ');
y = rand(n,1);
x = rand(n,1);
p = zeros(n,1);
for i=1:n
if (y(i) > 0.5 && x(i) < 0.5) || y(i) < 0.2
p(i) = y(i) + x(i);
else
p(i) = (y(i)*x(i))^2
end
end
Run Code Online (Sandbox Code Playgroud)
a)仅使用向量运算和逻辑索引重新实现代码(即,您不能使用任何循环或分支).