我得到以下问题:
编写一个迭代两个向量A和B的脚本,其中包含商品销售的出价.它计算出每个元素出价最高的新向量C.
例如-A = [1 2 4 6]且B = [5 0 8 10]应产生C = [5 2 8 10]
我研究了这个并找到了解决这个问题的两种方法(两个解决方案):
解决方案1
C=zeros(length(A))
For i=1:length(A);
If A(i)=>B(i)
C(i)=A(i);
Else
C(i)=B(i);
End
End
disp(C);
Run Code Online (Sandbox Code Playgroud)
解决方案2(更智能的解决方案)
C=A
For i=1:length(A)
If B(i)>A(i)
C(i)=B(i);
End
End
disp(C);
Run Code Online (Sandbox Code Playgroud)
然后我想如果A和B的长度不相等怎么办?
例如 - 如果A = [1 2 3 4]且B = [4 3 2 4 0 6]则产生C = [4 3 3 4 0 6]
我想到了这个,我能想到的解决方案是:
If length(A)>length(B)
m=length(A);
C=A;
Else
m=length(B);
C=B;
End
For i=1:m
If A(i)=>B(i)
C(i)=A(i);
Else
C(i)=B(i);
End
End
disp(C);
Run Code Online (Sandbox Code Playgroud)
我不是百分百确定上述代码是否完美,我很乐意找到新的和其他有效的方法来解决这个问题,请分享,如果你知道一个更好的方法
你可以简单地做:
C = max([A ; B]);
Run Code Online (Sandbox Code Playgroud)
如果你的矢量可以有不同的长度,那么你可以填充最小的-Inf元素:
C = max([A -Inf(1,numel(B)-numel(A)) ; B -Inf(1,numel(A)-numel(B))]);
Run Code Online (Sandbox Code Playgroud)
最好,