# Vectorization and a strange result

1 ビュー (過去 30 日間)
Maria 2020 年 10 月 14 日
コメント済み: Star Strider 2020 年 10 月 15 日
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).

サインインしてコメントする。

### 回答 (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 件のコメント表示非表示 3 件の古いコメント
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.
I would use the fully-vectorised approach (in my code), since to me that makes more sense.

サインインしてコメントする。

R2020a

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by