我有一个问题,我认为我知道如何解决,但显然我失败了..
我创建了一个.mat
文件。它有两列和25行数字。我想做一个循环来获取第一列中的每个值并将其放在X值中,并将第二列放在Y值中。然后我需要在图表上绘制点。
我知道如何进行循环和绘图...但是我无法提取数据并将它们放入X和Y值。
这是我的试用代码:
load figureinfo.mat
for K=1:25
x=X(:,K) ~~ I remember that the code looks something like that to extract ..
y=Y(:,K)
plot(x,y,'o')
hold on
end
如何获取数据并将其放入X和Y?
此外,(:,b)
中的“ROWS”在哪里? b=Columns
,但我在哪里放行?
答案 0 :(得分:4)
尝试以下方法:
load figureinfo.mat; %# assume this contains a matrix called figureinfo
X = figureinfo(:,1); %# numbers from all rows, column 1, into X
Y = figureinfo(:,2); %# numbers from all rows, column 2, into Y
plot(x,y,'o');
或更简单地说,
load figureinfo.mat;
plot(figureinfo(:,1), figureinfo(:,2), 'o');
如果您不知道.mat
文件中矩阵的名称,我建议:
clear %# clear all variables from workspace
load figureinfo.mat;
whos
将显示刚刚加载的任何内容的名称,大小和数据类型。
如果你真的想在循环中提取数据,你有两个选择:
load figureinfo.mat; %# assume this contains a matrix called figureinfo
X = [];
Y = [];
for ctr = 1:length(figureinfo)
X = [X figureinfo(ctr,1)];
Y = [Y figureinfo(ctr,2)];
end
或(更快,因为它不会重新分配X
和Y
)
load figureinfo.mat; %# assume this contains a matrix called figureinfo
X = zeros(length(figureinfo),1);
Y = zeros(length(figureinfo),1);
for ctr = 1:length(figureinfo)
X(ctr) = figureinfo(ctr,1);
Y(ctr) = figureinfo(ctr,2);
end