配列の各要素を別の配列の変数として定義したい.

22 views (last 30 days)
Soichiro Kato
Soichiro Kato on 12 Oct 2020
Answered: Akira Agata on 12 Oct 2020
ある変数Aがあったとして,次のように定義されるとします.
>>A=[1 0.1 0.01]
このとき,別の変数Bを次のように考えたとき,Aの各要素がBの各要素に対応されるためには,どのように記述すればよろしいでしょうか。
>>B=[a b c d]
つまりここでやりたいことは,
a=0;b=1;c=0.1;d=0.01
とAの各要素である値を,Bの各要素である変数にコマンドラインから定義するのではなく,
AとBを用いて直接的にAの要素をBの要素に代入する方法が知りたいということです.
初歩的な内容かもしれませんが,ご教示下さい.
  2 Comments
Akira Agata
Akira Agata on 12 Oct 2020
念のため確認させてください。
所望の処理内容は、上記の例のように「Bの要素数がAの要素数よりも多い場合、Aの要素をBに右詰めでゼロパディングする」という処理と理解して間違いないでしょうか?
Soichiro Kato
Soichiro Kato on 12 Oct 2020
ご返答ありがとうございます。
仰る通り,そのような処理を考えています.
配列の中身について,具体的には伝達関数の分母多項式あるいは分子多項式の各次数に対応する係数を考えています。
したがって,
上記の例では配列Bでは
aは3次,bは2次,cは1次,dは0次
配列Aでは
1が2次,0.1が1次,0.01が0次
です.
Bの要素数≧Aの要素数で考え,
次数が一致するように(右詰めで考えて),配列Aと次数が合わない部分の配列Bの要素(上記の例ではa)には0を代入したいということです.

Sign in to comment.

Answers (1)

Akira Agata
Akira Agata on 12 Oct 2020
詳細な説明、ありがとうございます。
それでは、以下のような方法ではいかがでしょうか?
A = [1 0.1 0.01];
B = zeros(1,4); % ベクトルBを初期値0で作成
n = numel(A); % ベクトルAの要素数
B(end-n+1:end) = A; % ベクトルAの各要素をBに右詰めで保存

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Tags

Products


Release

R2018a

Community Treasure Hunt

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

Start Hunting!