How to product two vector with difference sizes?

1 Ansicht (letzte 30 Tage)
Habib
Habib am 23 Apr. 2016
Bearbeitet: Habib am 24 Apr. 2016
Hi,
I need to product two vector as Ta and r1 but I got error (In an assignment A(I) = B, the number of elements in B and I must be the same.). in fact, my goal is make iteration on all body of script. I couldn't understand what is wrong?
my codes is following as:
N=100; a=0; a1=10; a2=5;
alfa=0.5*pi/180;
teta0=ones(1,3); L=ones(1,3); B=L; Ta(:,:)=ones(1,3);
Roc=inf; Rdisk=inf; landa=1.03e-3; k=2*pi/landa;
r1=linspace(a,a1,N); r2=linspace(a,a2,N);
n=[1.45 1.8153 2.4];
for s1=1:size(n)
teta0(s1)=(n(s1)-1)*alfa; L(s1)=0.5*a1./teta0(s1); B(s1)=L(s1);
kernel12=ones(1,N,s1); kernel21=ones(1,N,s1);
H12=ones(1,N,s1); H21=ones(1,N,s1);
Ta(s1)=exp(-1i*2*teta0(s1)*k*r1);
Tdisk=exp(-1i*k*r2.^2/Rdisk);
Ttot=Ta(s1).*Tdisk(1:N);
Toc=exp(-1i*k*r2.^2/Roc);
end

Antworten (1)

Azzi Abdelmalek
Azzi Abdelmalek am 23 Apr. 2016
Bearbeitet: Azzi Abdelmalek am 23 Apr. 2016
Line 11 should be
Ta(s1)=exp(-1i*2*teta0(s1)*k*r1(s1));
You missed the index s1 in r1 (r1(s1) insteas of r1)
  2 Kommentare
Habib
Habib am 23 Apr. 2016
thanks,
I think it is couldn't best idea because the size of r1 is 1*200 and when we use r1(s1) instead of r1 only 3 elements of r1 selected because s1 is a 3 elements vector.
it is my idea and I don't know that it is true.
another problem, that I faced it, is kernel12(:,:,1)=0 and kernel12(:,:,2) has value, what is wrong? whereas it must has value.
Azzi Abdelmalek
Azzi Abdelmalek am 23 Apr. 2016
This your problem, you should know what are the sizes of your data. What is the expected size of Ta?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by