MATLAB - 如何将.mat文件中的数据导入和绘制到x和y变量?

时间:2010-05-14 20:13:40

标签: matlab loops

我有一个问题,我认为我知道如何解决,但显然我失败了..

我创建了一个.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,但我在哪里放行?

1 个答案:

答案 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

或(更快,因为它不会重新分配XY

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