stringとdoubleの配列を結合したいです

stringで書かれたデータ(IDという名前の、737x1 string) と、doubleで書かれたデータ(LUTという名の、737x9 double)
を結合したいです。
[ID LUT]で連結するとstringになってしまうのか、数字が使えなくなります
やりかたを教えてください

 Respuesta aceptada

Atsushi Ueno
Atsushi Ueno el 26 de Mayo de 2023

1 voto

str2double関数でstring型⇒double型に変換してから結合するのはどうでしょうか。仮定が誤ってたらごめんなさい。
ID = repmat("9.87",2,1); % (IDという名前の、737x1 string) と、
LUT = repmat(1.23,2,9); % doubleで書かれたデータ(LUTという名の、737x9 double)
[str2double(ID) LUT] % で連結するとstringになってしまうのか、数字が使えなくなります
ans = 2×10
9.8700 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 9.8700 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300

3 comentarios

Atsushi Ueno
Atsushi Ueno el 26 de Mayo de 2023
Movida: Atsushi Ueno el 26 de Mayo de 2023
問題の再現:
row = 2;% 737は表示するのに長過ぎるので、2に変更
ID = repmat("9.87",row,1) % (IDという名前の、737x1 string) と、
ID = 2×1 string array
"9.87" "9.87"
LUT = repmat(1.23,row,9) % doubleで書かれたデータ(LUTという名の、737x9 double)
LUT = 2×9
1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300 1.2300
[ID LUT] % で連結するとstringになってしまうのか、数字が使えなくなります
ans = 2×10 string array
"9.87" "1.23" "1.23" "1.23" "1.23" "1.23" "1.23" "1.23" "1.23" "1.23" "9.87" "1.23" "1.23" "1.23" "1.23" "1.23" "1.23" "1.23" "1.23" "1.23"
(変更) string型のデータを"a"から"9.87”に変更
目的から考えて、string型の数値とdoubleの数値を結合したいのだろうと認識を改めました。
Atsushi Ueno
Atsushi Ueno el 30 de Mayo de 2023
ああああ!想定した背景が全然違いましたね。取り消したいこの回答!
@Akira Agataさんの回答を採用してくださいな
kenichiro inagaki
kenichiro inagaki el 31 de Mayo de 2023
いえ!!ありがとうございます!勉強になりました

Iniciar sesión para comentar.

Más respuestas (1)

Akira Agata
Akira Agata el 30 de Mayo de 2023
Movida: Atsushi Ueno el 30 de Mayo de 2023

1 voto

+1
もし ID が文字列でしたら、table 型変数として結合する方法もあります。
以下、簡単のためサイズが 3×1 の ID (string型) と 3×9 の LUT (double型) で説明します。
% ID, LUTのサンプル
ID = ["Taro"; "Jiro"; "Saburo"];
LUT = rand(3, 9);
% 方法1: 単純に table 型変数として結合
T1 = table(ID, LUT)
T1 = 3×2 table
ID LUT ________ __________ "Taro" 1×9 double "Jiro" 1×9 double "Saburo" 1×9 double
% 方法2: LUTの各列が table 型変数の列となるように結合
T2 = [table(ID), array2table(LUT)]
T2 = 3×10 table
ID LUT1 LUT2 LUT3 LUT4 LUT5 LUT6 LUT7 LUT8 LUT9 ________ _______ ________ ________ ________ _______ ________ _______ _______ _______ "Taro" 0.91808 0.56202 0.95989 0.78458 0.88718 0.035245 0.68346 0.58253 0.7867 "Jiro" 0.25424 0.45737 0.080926 0.50479 0.57011 0.80057 0.19485 0.74479 0.14043 "Saburo" 0.99111 0.028028 0.072873 0.040447 0.28866 0.24511 0.6243 0.59973 0.16528

1 comentario

kenichiro inagaki
kenichiro inagaki el 30 de Mayo de 2023
Movida: Atsushi Ueno el 30 de Mayo de 2023
皆様
(ここに返事して良いんですかね・・・)ご回答ありがとうございます。
えっと、やりたいことはAkira Agara様のご回答に近いです
IDは数字ですが文字として扱いたいです(01172023 のようなもの)
いちどこれでやってみます ありがとうございます!

Iniciar sesión para comentar.

Categorías

Más información sobre データ型の変換 en Centro de ayuda y File Exchange.

Productos

Versión

R2022a

Etiquetas

Preguntada:

el 26 de Mayo de 2023

Comentada:

el 31 de Mayo de 2023

Community Treasure Hunt

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

Start Hunting!