質問: tableデータ名に日本語が含まれている場合の処理 いつも大変お世話になっております。 エクセルで編集されたデータ名に日本語が含まれており、それをそのままテーブルに取り込むと、日本語の部分が文字化けしてしまいます。 下記リンクを参照にコーディングしましたが、文字化けしてしまいます。 https://jp.mathworks.com/matlabcentral/answers/414139-utf-8-csv 解決策などはありますでしょうか。 よろしくお願いいたします。
回答: yuya iwasaki様 データの添付及び、コマンド例を記載頂きましてありがとうございます。 ご利用頂いているmatlabバージョンがr2017aとのことで、行名に日本語等のマルチバイト文字取得の対応が出来ないようです。r2019b以降ですと、以下のオプション引数をつけることで読み込みができます。 詳細はr2019bのリリースノートを参照頂けますでしょうか? td2 = readtable('sample.csv','preservevariablenames',true) r2017bの場合、出力が 'string' 型ではありますが、以下のコマンドで取得が可能かと思います。 % 変数初期化 filename = 'sample.csv'; delimiter = ','; formatspec = '%s%s%s%s%s%[^ ]'; % テキスト ファイルを開きます。 fileid = fopen(filename,'r'); % データの列を書式設定に従って読み取ります。 dataarray = textscan(fileid, formatspec, 'delimiter', delimiter, 'texttype', 'string', 'returnonerror', false); % テキスト ファイルを閉じます。 fclose(fileid); % td2 に出力 td2 = [dataarray{1:end-1}]; % 一時変数のクリア clearvars filename delimiter formatspec fileid dataarray ans; ご検討頂けますでしょうか。 stozaki