Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
我有一个问题,我以为我知道如何解决,但显然我失败了..
我有一个创建的.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) :, (:,b) “ ROWS”在哪里? b=Columns ,但是我将行放在哪里? 回答: 请尝试以下操作: 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 更多&回答... |
![]() |
![]() |