三次元(XYZ)を1つの関数に置く
조회 수: 11 (최근 30일)
이전 댓글 표시
図1
図2
図1の縦方向をY軸、横方向をX軸とし、CXVファイルをZ軸方向としています。
この(XYZ)を使ってA=(XYZ)のような1つの関数に置きたいです。
宜しくお願いします。
댓글 수: 0
채택된 답변
交感神経優位なあかべぇ
2023년 7월 16일
下記にサンプルコードを作成しました。全てのCSVファイルのX,Yのそれぞれのデータ数は全部等しいことを前提にしています。
% サンプルとなるCSVファイルを作成
fileName = 'file_';
for i = 1 : 10
data = zeros(11,11);
data(1,2:end) = 0:9;
data(2:end,1) = 0:9;
data(2:end, 2:end) = reshape(1:100, 10, 10); % サンプルデータはとりあえず連番データを挿入
fileData = num2cell(data);
fileData{1,1} = 'y/x';
writecell(fileData, [fileName, num2str(i-1), '.CSV']);
end
fileData % CSVに保存したデータのひとつを表示
list = dir('*.CSV'); % CSVファイルの取り出し
filePath = fullfile(list(1).folder, list(1).name); % 一つ目のCSVファイルパスを取得
file1Data = readmatrix(filePath, 'Range', [2,2]); % データを示すセル(2行2列目)からデータの読み込み
csvData = zeros([size(file1Data), length(list)]); % データの初期化
csvData(:,:,1) = file1Data; % ひとつめのファイルのデータを挿入
for i = 2 : length(list) % 2ファイル目以降のファイル読み込みのためのループ文
filePath = fullfile(list(i).folder, list(i).name);
csvData(:,:,i) = readmatrix(filePath, 'Range', [2,2]); % CSVファイルのデータの代入
end
csvData(:,:,1) % 一つ目のファイルのデータを表示
댓글 수: 9
交感神経優位なあかべぇ
2023년 7월 28일
편집: 交感神経優位なあかべぇ
2023년 7월 28일
④ '^file_(\d+)\.'は正規表現です。^は文字列の先頭を指し、\dは数字、\d+は一つ以上連続した数値の文字列、\.は、.を指します。(正規表現で.は任意の文字を表すので、文字の.を表現するには\.になります。)
また、(\d+)の()はトークンを表します。
a = [3,2,1,5,4];
[data, sortIdx] = sort(a) % 出力1は昇順に並び替えたデータで、出力2はソート結果の並び替えインデックス
また、配列データのインデックスに並び替えたい数値配列を指定すると、その配列順にデータを並び替えることができます。
orderIdx = [3,2,1];
data = [1,2,3];
orderData = data(orderIdx)% orderIdxで指定した順序に並び替え
この2つを組み合わせると、sortで指定した並び替え順序を他のデータに反映させることができます。
data = [3,2;1,2;2,7;6,8;5,11;4,100]%1列目の数値が昇順になるように行全体を並べ替えたい。
[~, sortIdx] = sort(data(:,1));% 1列目の数値配列のソート結果のインデックス取得
sortData = data(sortIdx,:) %ソート結果のインデックスをもとに行の並び替え
⑥ カラーのラベルについて、climでカラーの上下限値を設定できるので、全てのグラフでclim([0,100])を指定すれば、全て0~100の幅を持ったカラーバーに統一できます。(MATLAB R2022aより前のバージョンの場合はcaxisです。)
サンプルを下記に書きました。
sample1 = peaks(0:9) .* 10; % サンプルデータ1の作成
[min(sample1(:)), max(sample1(:))] % data1の上下限の確認
sample2 = sample1 .* 2;% サンプルデータ2の作成。サンプル1より2倍大きい
colormap(turbo()); % カラーマップの色の指定 理想形に近そうな色を選択
contourf(0:9,0:9,sample1); % sample1のコンター図描画
clim([0,100]); % カラーマップの上下限値の指定
colorbar; % カラーバー表示
contourf(0:9,0:9,sample2);% sample2のコンター図描画
clim([0,100]);% カラーマップの上下限値の指定
colorbar;% カラーバー表示
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!