Multiplication of vectors in for loops

7 次查看(过去 30 天)
Hi all,
I am wondering how to make this for loop work. Each radius value results in a vector product containing 3 numbers. I wanted those three numbers to occupy each row ( so that each row is a new vector from each radius multiplication ).
radius = [3,3] % contains 9 different values
Tdims= zeros(9,3)
for i = 1: length(radius)
for j= radius
Tdims(j,i)= sin (anglesRad) .* radius (j) + ycenter - 100 % each vector product is its own row
end
end

采纳的回答

Voss
Voss 2023-2-15
Possibly this:
radius = rand(3,3); % contains 9 different values
ycenter = 0;
anglesRad = [0 1 2]; % I guess this is a 1-by-3 vector based on your description
nr = numel(radius);
na = numel(anglesRad);
Tdims = zeros(nr,na);
for i = 1:nr
Tdims(i,:) = sin(anglesRad) .* radius(i) + ycenter - 100; % each vector product is its own row
end
disp(Tdims);
-100.0000 -99.3458 -99.2931 -100.0000 -99.8789 -99.8691 -100.0000 -99.8605 -99.8493 -100.0000 -99.3679 -99.3170 -100.0000 -99.9411 -99.9364 -100.0000 -99.2905 -99.2334 -100.0000 -99.9297 -99.9240 -100.0000 -99.3072 -99.2513 -100.0000 -99.3274 -99.2732
  2 个评论
Jade T
Jade T 2023-2-15
Excellent, I actually can understand what you did here, and you caught that the center needed to be specified outside the loop. Much appreciated

请先登录,再进行评论。

更多回答(1 个)

Sulaymon Eshkabilov
编辑:Sulaymon Eshkabilov 2023-2-15
If understood your question correctly, this is how you can get it done:
radius = randi(10, 3, 3); % contains 9 different values
ycenter = 1;
anglesRad = deg2rad([30, 60 90]);
Tdims= zeros(size(radius));
for ii = 1:size(radius,1)
for jj= 1:size(radius,2)
Tdims(ii,jj)= sin(anglesRad(ii))* radius (ii,jj) + ycenter - 100; % each vector product is its own row
end
end
Tdims
Tdims = 3×3
-97.5000 -96.0000 -97.5000 -90.3397 -98.1340 -96.4019 -90.0000 -90.0000 -91.0000

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

产品


版本

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by