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

16 ビュー (過去 30 日間)
Soichiro Kato
Soichiro Kato 2020 年 10 月 12 日
回答済み: Akira Agata 2020 年 10 月 12 日
ある変数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 件のコメント
Akira Agata
Akira Agata 2020 年 10 月 12 日
念のため確認させてください。
所望の処理内容は、上記の例のように「Bの要素数がAの要素数よりも多い場合、Aの要素をBに右詰めでゼロパディングする」という処理と理解して間違いないでしょうか?
Soichiro Kato
Soichiro Kato 2020 年 10 月 12 日
ご返答ありがとうございます。
仰る通り,そのような処理を考えています.
配列の中身について,具体的には伝達関数の分母多項式あるいは分子多項式の各次数に対応する係数を考えています。
したがって,
上記の例では配列Bでは
aは3次,bは2次,cは1次,dは0次
配列Aでは
1が2次,0.1が1次,0.01が0次
です.
Bの要素数≧Aの要素数で考え,
次数が一致するように(右詰めで考えて),配列Aと次数が合わない部分の配列Bの要素(上記の例ではa)には0を代入したいということです.

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

回答 (1 件)

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

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

タグ

製品


リリース

R2018a

Community Treasure Hunt

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

Start Hunting!