从数组的某个部分减去一个数字



我有一个数字系列8654个元素,它们的数据格式(度(如下(只是一个例子(:

A = [ 1.002 2.003 3.004 4.005 339.006 341.007 342.008 343.009 1.002 2.003 3.004 4.005];

我目前正在使用以下代码-MATLABR2020a来制作上述数组中值大于300减去360的元素;

if (A(:,1) > 300)

A(:,2)= 360-A(:,1);

else
A(:,2) = A(:,1);
end

在第二列中制作一个看起来像的新阵列

A = [ 1.002 2.003 3.004 4.005 21 19 18 17 1.002 2.003 3.004 4.005];

但我得到的阵列与相同

A = [ 1.002 2.003 3.004 4.005 339.006 341.007 342.008 343.009 1.002 2.003 3.004 4.005];

我不知道我在哪个地方出错了!!需要指导!!

您的索引不太正确,因为您在if条件下同时检查A的每个元素。

相反,你要么想要一个循环

for ii = 1:size(A,1)
if A(ii,1) > 300
A(ii,2) = 360 - A(ii,1);
else
A(ii,2) = A(ii,1);
end
end

";matlab风格的";这样做的方法是使用逻辑索引:

A(:,2) = A(:,1);    % copy to column 2
idx = A(:,2) > 300; % Select the rows satisfying your condition
A(idx, 2) = 360 - A(idx, 2); % Modify those rows

我找到了方法:

A(A>300) = 360-A(A>300);

感谢您的快速回复!!

相关内容

  • 没有找到相关文章

最新更新