読み取ったテキストファイル内の文字列に数値を代入する
Q&A
解決したいこと
MATLABでテキスト内の行列マトリクスを読み取り、行列内に含まれる文字Xの値に10という数値を入れたいです。
記述ソースコード①
①はfor文内にXの数値を入れれば認識するかとプログラミングしました。
p = readmatrix('xyA_8.txt', 'NumHeaderLines', 5);
%行列のサイズの指定、0の空欄を作る
q = zeros(3,3);
%1~合計ピクセルまでfor文で回す
for i = 1:9
q(p(i,2)+1,p(i,1)+1) = p(i,3);
X = str2double('10')
end
disp(q);
①の結果と課題
45 45 45
45 NaN 45
45 45 45
①の場合、行列内のXに数値が入っていませんでした。
記述ソースコード②
②はテキスト検索を用い、糸口がつかめるかとプログラミングしました。
%行列の読み取り=readmatrix
%~行目から読み取り=NumHeaderLines
p = readmatrix('xyA_8.txt', 'NumHeaderLines', 5);
%行列のサイズの指定、0の空欄を作る
q = zeros(3,3);
%1~合計ピクセルまでfor文で回す
for i = 1:9
q(p(i,2)+1,p(i,1)+1) = p(i,3);
end
%qの表示
disp(q);
idx = strfind(str,'X')
idx{:,:}
②の結果と課題
45 45 45
45 NaN 45
45 45 45
エラー: strfind
入力の文字列は、1 行でなければなりません。
エラー: colormap10 (line 28)
idx = strfind(str,'X')
こちらでも上手くいきませんでした。
お聞きしたいこと
何故これらの場合は上手くいかないのか、目標とするテキスト内を読み込み、その中に存在する文字に対し、数値を代入し行列を完成する為のプログラムや手段をどうしたらよいか教えていただけると幸いです。
0 likes