フィルターのクリア

How to access a element of a dynamically created array

4 ビュー (過去 30 日間)
Akram RAYRI
Akram RAYRI 2022 年 4 月 12 日
コメント済み: Akram RAYRI 2022 年 4 月 13 日
Hi all, I have created a set of arrays of dimension 1*3 using the following code :
BS = 3; area = 300;
X1 = area * rand(1,BS) -area/2 ;
Y1 = area * rand(1,BS) -area/2 ;
for i = 1:BS
eval(['BS' num2str(i) '= [X1(i) Y1(i) 1] '])
end
and i would like to dynamically access the third element of BS"i". Let's say that BS1(3) = 100, and BS2(3) = 150 and BS3(3) = -200. How I would realize that dynamically by using a for loop ?
  1 件のコメント
DGM
DGM 2022 年 4 月 12 日
編集済み: DGM 2022 年 4 月 12 日
You know what's better than solving an unnecessary problem?
Not creating the problem in the first place.
Side note: There's not much point accessing BSx(3). You explicitly set them all to 1.

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

採用された回答

DGM
DGM 2022 年 4 月 12 日
Just use an array
BS = 3;
area = 300;
BSx = [area*(rand(BS,2) - 0.5) ones(BS,1)]
BSx = 3×3
49.0217 81.9383 1.0000 -61.5512 72.0274 1.0000 -98.1272 -102.9906 1.0000
  3 件のコメント
DGM
DGM 2022 年 4 月 13 日
I never said it couldn't be done; I said it was unnecessary. You're defeating the most basic functionality of the language by embedding indexing information into the variable name.
Accessing the row vectors within a matrix is easier, faster (by about three orders of magnitude), and more flexible than doing the same with a bunch of dynamically accessed named vectors.
BS = 3;
area = 300;
BSx = [area*(rand(BS,2) - 0.5) ones(BS,1)]
BSx = 3×3
58.9408 15.3944 1.0000 -64.1582 65.8407 1.0000 -81.9446 -23.0681 1.0000
You want the first element of the second vector?
BSx(2,1)
ans = -64.1582
Want the third vector in whole?
BSx(3,:)
ans = 1×3
-81.9446 -23.0681 1.0000
Want all x values?
BSx(:,1)
ans = 3×1
58.9408 -64.1582 -81.9446
It's your choice.
Akram RAYRI
Akram RAYRI 2022 年 4 月 13 日
Yes I saw what you meant. Thank you so much for your reply anyways ;)

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeDevelop Apps Using App Designer についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by