tableをroun​dを使用して整数にす​る方法について

tableの値が少数になっておりroundを使用して整数にしようとしましたが、できませんでした。
tableの値を整数にするのは不可能でしょうか。ちなみにデータストアに格納してからroundで整数にすることはできましたが、行いたいコードの都合上、tableのままで整数にしたいです。
参考程度に私のtableの一部分を載せておきます。{1×4 double}は実際は[100.1 200.1 4 5]のようになっており、[100 200 4 5]のように整数にしたいです。
アドバイス等いただけると幸いです。
よろしくお願いいたします。
imageFilename    BothHands Drinking
_______________________________________________________________________________    ____________ ____________
  
{'C:\Users*** Lab\Desktop\MATLAB\***0.png' } {1×4 double} {0×0 double}
{'C:\Users\*** Lab\Desktop\MATLAB\***1.png' } {1×4 double} {0×0 double}
{'C:\Users\*** Lab\Desktop\MATLAB\***2.png' } {1×4 double} {0×0 double}

 채택된 답변

OH
OH 2021년 3월 6일

1 개 추천

cellfun()を使用しました。
なぜround()をそのまま使うとエラーになるかと言うと、
Table配列の中にCell配列でデータを格納してしているためです。
今回のように文字(charやstring)と数値(double)が混在する配列や、
一つの要素に数値ベクトルをまとめる際にCell配列は使われますね。
下記ではテーブルTを作成し、2列目と3列目にある数値ベクトルをroundで丸めました。
moji = {'A';'B';'C'};
num1 = {1.7;50.3;25.7};
num2 = {1:0.2:10;10:0.5:20;20:30};
T = table(moji,num1,num2);
T{:,2:3} = cellfun(@round,T{:,2:3},'UniformOutput',false);

댓글 수: 4

Hiro Yoshino
Hiro Yoshino 2021년 3월 8일
@OH さんの仰る通りcellfunを使うことが適当かと思います。
ぱっと見たところ、全てをcellにしてtableに格納されているのでしょうか?
string型もR2017a以降のヴァージョンなら受け付けてくれますので、ファイル名などはstring型の配列にした方がスッキリするのでは?と思いました。cellは便利ですが、使わなくて済むところで使うと、後の取り扱いが面倒くさくなる時がありますので。
HY
HY 2021년 3월 8일
OH様、Hiro様 ご回答頂きありがとうございます。 お二方の意見を参考にやってみたいと思います。 ありがとうございます。
Akira Agata
Akira Agata 2021년 3월 8일
もし table 内の各行に保存される数値配列が常に 1×N の行ベクトルであれば、以下のように数値配列のまま格納することができます。
moji = ["A";"B";"C"];
num1 = 10*rand(3,4);
T = table(moji,num1);
>> T
T =
3×2 table
moji num1
____ ________________________________________
"A" 4.7109 0.42431 0.9673 7.2244
"B" 0.59619 0.71445 8.1815 1.4987
"C" 6.8197 5.2165 8.1755 6.5961
この場合、cellfun を使わなくても直接 round を適用することが可能です。
T.num1 = round(T.num1);
>> T
T =
3×2 table
moji num1
____ ________________
"A" 5 0 1 7
"B" 1 1 8 1
"C" 7 5 8 7
HY
HY 2021년 3월 9일
画像のように1つのcellに4つの座標がある場合ではどのように対処すればよいでしょうか。回答ではmojiとnum1のようにtableを作成していますが、既存のtableではどうすればよいのでしょうか。

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 数値型에 대해 자세히 알아보기

질문:

HY
2021년 3월 6일

댓글:

HY
2021년 3월 9일

Community Treasure Hunt

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

Start Hunting!