在MATLAB中对向量的特定部分进行操作

时间:2014-07-15 09:30:04

标签: matlab vector

我是MATLAB的新手,我有一个问题,我觉得应该有一个简单的解决方案。但是,我现在被卡住了。

我的程序生成一个向量作为结果,其中包含正值和负值。 我希望找到一种解决方案,我只能将矢量的正值分配给新的矢量,并将负值替换为0.当然,矢量的大小应该相同。

矢量大小为1 * 345600

Pbat(t)......(具有负数和正数)

Pbat1(t)......(在将负值更改为0时,应与Pbat(t)具有相同的大小)

提前致谢, 哈米德

2 个答案:

答案 0 :(得分:4)

简单,使用逻辑索引...

initial_vector = rand(1,345600);
new_vector = initial_vector;
new_vector(initial_vector<0)=0;

答案 1 :(得分:3)

只需使用max(..., 0)

initial_vector = randn(1,345600); %// example data 
new_vector = max(initial_vector, 0); %// set negative values to 0