Info
이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.
Vectorization and a strange result
조회 수: 2 (최근 30일)
이전 댓글 표시
Hi,
I am struggling since few hours with a vectorized operation.
I have some vector quantities, and I wanted to vectorize. I put in the attachment a .mat file.
For testing, I compute the fx1 and fx_1 in this way
fx1 = const_1 .* exp(-1j.*beta(1:2)'.*const_2)./const_2 .* t;
fx_1 = const_1 .* exp(-1j.*beta(1)*const_2)./const_2 .* t;
where beta is a vector. I would expect that the first row of fx1 and fx_1 coincide, but they don't. I am very confused what I am missing here. Ideally, I would like to do this
fx1 = const_1 .* exp(-1j.*beta'.*const_2)./const_2 .* t;
instead of multiplying in a for loop for each beta(i).
댓글 수: 0
답변 (1개)
Star Strider
2020년 10월 14일
Your ‘mytest.mat’ file contains:
fx_1: [1×150 double]
beta: [1×25 double]
t: [1×150 double]
const_1: [1×150 double]
const_2: [1×150 double]
fx1: [2×150 double]
It would help to know what you want to do with those vectors and the ‘fx1’ matrix. That is not obvious from the code you posted.
댓글 수: 4
Star Strider
2020년 10월 15일
You are computing ‘fx’ differently in the looop than in the vectorised calculation.
If you plot them:
for i = 1 : length(beta)
fx(i,:) = const_1 .* exp(-1j.*beta(i).*const_2)./const_2 .* t;
end
figure
mesh(abs(fx))
set(gca, 'ZScale','log')
xlabel('t')
ylabel('\beta (index)') % ‘beta’ Is Complex, So Plotting The Index Values
zlabel('|fx1|')
you will see that they are essentially just mirror-images of each other with respect to the z-axis. The magnitudes are of courrse different, the vectorised approach goes from
to
, and the loop goes from
to
. Chioose whatever version makes sense in the context of what you want to do. I have no idea what that is.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/380933/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/380938/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/380943/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/380948/image.png)
I would use the fully-vectorised approach (in my code), since to me that makes more sense.
이 질문은 마감되었습니다.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!