質問: x軸のサンプリングが異なるxyzデータをカラーマップ表示する方法 1×mの配列データxおよびyがあり、xが座標、yがそのx座標に対応するある測定データです このデータがz軸方向にある間隔でn個存在するのですが、各z座標に対応するx座標データのサンプリングとデータレンジがまちまちです。 このデータをxz平面でyの値に対応するカラーマップとして表示したいのですがどうしたら良いでしょうか。 一通りのtoolboxは使用可能です。
回答: z軸に相当するデータを n とします n = 0:10:50; ここでは x, yのデータを a という cell型配列に格納します cell型にしないとサイズが違うので怒られます データ自体は既知だと思うので、最後の2行のように格納するんだって思っていただければいいです for i = 1:length(n) m = n(i) + 50; x_i = randi(m); x_f = 200 + m; x = transpose(x_i:x_f); y = sin(2*(pi*x - 2*n(i))/200); a{i,1} = x; % ← 実際はここだけ使う a{i,2} = y; % ← 実際はここだけ使う end aの中身を見てみましょうか a ここで x の最小最大を求めます そして5ステップ刻みの x_q を作成します xi_min = min(cellfun(@(x) x(1,1), a(:,1))); xf_max = max(cellfun(@(x) x(end,1), a(:,1))); x_q = xi_min:5:xf_max; interp1 でデータサイズや刻み幅を合わせます b = cellfun(@(x,y) interp1(x,y,x_q), a(:,1),a(:,2),'uniformoutput',false); 図示します b = cell2mat(b); [x, z] = meshgrid(x_q,n); surf(x,z,b) view(2); xlabel('x軸'), ylabel('z軸');