我对Matlab很新,所以任何帮助都会受到赞赏。
我正在尝试使用简单的逻辑运算符编写一个函数来创建一些2D散点图,我遇到的问题是我无法弄清楚如何使用来自用户的输入(数字的数量) )实际创造这么多的数字。
*编辑(为了清楚起见,我正在绘制多组数据,即每个图上的列,但重要的是,当用户指定他们想要多少个数字时,会有多个数字,这就是位我无法理解。我理解如何使用hold on在每个图上绘制多个图形但是如何根据用户的输入改变图形数量?)
用户输入是尺寸为4000x30的矩阵(对于我的使用将保持不变)和数字的数量(这将从1-30变化)到该数据集的绘图。每列代表一个不同的传感器,因此每列代表1组数据。
答案越简单越好,因为我不是一个非常有经验的编码员。
由于 GibGib
答案 0 :(得分:0)
好吧,你要问的是你有这个数据矩阵M,用户定义U,你可以绘制U个图,其中每个图是U列对应M的2D分散? 在那种情况下,这会吗?
figure;
hold on %is optional depending how you want your plot
for i = 1:U
plot(M(:,i))
end
如果这不是您要找的,请进一步说明您的问题。
答案 1 :(得分:0)
看看这是否适合你:
Data = rand(40,30); %// Just a small data set for testing.
%// Ask user how many figures are desired
prompt = {'Enter desired number of figures:'};
dlg_title = 'Input';
num_lines = 1;
def = {'5'};
NumFigures = inputdlg(prompt,dlg_title,num_lines,def);
%// Get # of figures. If the entry is not valid (i.e. remainder of division 30/entry is not 0), ask again.
while rem(size(Data,2),str2double(NumFigures{1})) ~= 0
NumFigures = inputdlg(prompt,dlg_title,num_lines,def);
end
NumFigures = str2double(NumFigures{1}); %// Convert to number
ColPerFig = size(Data,2)/NumFigures; %// Number of columns to plot per figure
ColStart = 1:ColPerFig:size(Data,2) %// Indices of the starting columns to plot
ColStart看起来像这样:
ColStart =
1 7 13 19 25
因此,循环更容易索引到Data
并获取适当的值。
%// Plot
for k = 1:NumFigures;
hFig(k) = figure;
plot(Data(:,ColStart(k):ColStart(k)+ColPerFig-1));
end