我目前正在 Matlab Gui 中进行多元回归。我有一个名为 A 的变量和一个名为 X 的矩阵,其中包含许多列,分别表示为X1,X2,... Xn。我想制作一个具有子图(每行2个),并在 A 和每个 X 列之间进行绘制的图形。问题是,当用户插入他的 X 矩阵时,该列可能是1、2或10。我认为我必须为X做一个for循环。在子图中是否有可能?我在想类似的东西。有人可以帮我使它正常工作吗?
cols = size(X,2);
figure;
for i = 1:cols
subplot(ceil(cols/2),2,i)
scatter(A,X(i,:));
end
我想要的输出必须具有Y轴中的 向量A 的子图,且矩阵X的每一列都是这样。如果X有5列,我想要一个包含5个子图的图形。
答案 0 :(得分:1)
可以。下面是一个演示。
引用subplot:
subplot(m,n,p)将当前图形划分为m×n的网格,并在p指定的位置创建轴。
因此,您的a
应该是总列数除以2。但是,这可能导致奇数列的非整数。您将需要用ceil
包装商。
randomColNum = randi([1,10]);
randomRowNum = randi([10,20]);
A = rand(1,randomRowNum ); % make a random vector to imitate matrix A.
X = rand(randomRowNum, randomColNum ); % make a random matrix to imitate user input X.
cols = size(X,2);
figure;
for i = 1:cols
subplot(ceil(cols/2),2,i)
scatter(X(:,i), A);
end