我是MATLAB的新手,我有一个问题,我觉得应该有一个简单的解决方案。但是,我现在被卡住了。
我的程序生成一个向量作为结果,其中包含正值和负值。 我希望找到一种解决方案,我只能将矢量的正值分配给新的矢量,并将负值替换为0.当然,矢量的大小应该相同。
矢量大小为1 * 345600
Pbat(t)......(具有负数和正数)
Pbat1(t)......(在将负值更改为0时,应与Pbat(t)具有相同的大小)
提前致谢, 哈米德
答案 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