変数A=[-0.2;-0.1;-7.1;8.2]と入っています。
変数Bは、<undefined>、<undefined>、E-02、E-03のように、べき乗のものとそうでないものがcategorical(文字)で入っています。
変数Cとして、C=[-0.2; -0.1; -7.1*10^{-2};8.2*10^{-3}];のようなものを取得したいと思っています。
つまり、<undefined>の場合は何もせず、E-02の時は*10^{-2}をかけるような処理をしたいと思っています。
if文でしょうか?このような場合、どのように書けばよろしいでしょうか。
教えていただけますと幸いです。ご教示のほど、どうぞよろしくお願いいたします。

 채택된 답변

Atsushi Ueno
Atsushi Ueno 2022년 5월 25일

0 개 추천

A = [-0.2, -0.1, -7.1, 8.2]; % 変数A: 行ベクトル/列ベクトル共に要領は同じです
B = categorical({'', '', 'E-02', 'E-03'}) % 変数B: categorical(文字)
B = 1×4 categorical array
<undefined> <undefined> E-02 E-03
B(ismissing(B)) = 'E+00' % 変数Bの欠損値をE+00にする
B = 1×4 categorical array
E+00 E+00 E-02 E-03
B = double(1 + string(B)) % stringに変換→頭に1を付け"1E+00"の形に→数値に変換
B = 1×4
1.0000 1.0000 0.0100 0.0010
A .* B % 変数Aの要素毎に変数Bを掛ける
ans = 1×4
-0.2000 -0.1000 -0.0710 0.0082

댓글 수: 1

Hiroki Takeda
Hiroki Takeda 2022년 5월 27일
ご連絡いただきありがとうございます。
無事にうまくいきました。ありがとうございます。
またよろしくお願いいたします。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 プログラミング에 대해 자세히 알아보기

제품

릴리스

R2021b

질문:

2022년 5월 25일

댓글:

2022년 5월 27일

Community Treasure Hunt

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

Start Hunting!