質問: [1,3,9,10,15,...]のような線形でないベクトルに対し、その値に対応する位置に、cの各要素を配置することができませんでした。 この場合、y(1)からy(2)までをc(1,:)の図が占め、y(2)からy(3)までをc(2,:)の図が占める、というような図の作成方法は存在するのでしょうか?
回答: を使うと非線形の x,y の位置指定ができます。ただ、image 関数と仕様が違うので多少設定をいじる必要があります。以下のサンプルを参考にしていただきたいのですが、例えば * |pcolor| はカラーマップで色情報を指定するので、必要に応じて |colormap| 関数を使用します。 * |pcolor| は各ピクセルを黒のメッシュで強調表示するため、 |shading flat| で表示を無効にします。 * |pcolor| では原点 (0,0) が左下として表示されるので、 |axis| を使って左上に変更します。 % カラーマップ付き画像 [rgb,map] = imread('corn.tif'); x = 1:size(rgb,2); % 非線形のインデックスを作成 y = cumsum(randi(5,1,size(rgb,1))); pcolor(x,y,rgb) shading flat % エッジのラインを削除 colormap(map) % カラーマップを指定 caxis([0 size(map,1)]) % カラーマップのスケーリング axis ij image % 画像としての軸指定 <>