首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用load而不是其他I/O命令

使用load而不是其他I/O命令
EN

Stack Overflow用户
提问于 2010-05-01 08:55:30
回答 1查看 80关注 0票数 0

如何使用load-ascii命令修改此程序以读取(x,y)?

代码语言:javascript
复制
n=0;
sum_x = 0;
sum_y = 0;
sum_x2 = 0;
sum_xy = 0;
disp('This program performs a least-squares fit of an');
disp('input data set to a straight line. Enter the name');
disp('of the file containing the input (x,y) pairs:  ');
filename = input('   ','s');
[fid,msg] = fopen(filename,'rt');
if fid<0
    disp(msg);
else
    [in,count]=fscanf(fid, '%g %g',2);
    while ~feof(fid)
        x=in(1);
        y=in(2);
        n=n+1;
        sum_x=sum_x+x;
        sum_y=sum_y+y;
        sum_x2=sum_x2+x.^2;
        sum_xy=sum_xy+x*y;
        [in,count] = fscanf(fid, '%f',[1 2]);
    end
    fclose(fid);
    x_bar = sum_x / n;
    y_bar = sum_y / n;
    slope = (sum_xy - sum_x*y_bar) / (sum_x2 - sum_x*x_bar);
    y_int = y_bar - slope * x_bar;
    fprintf('Regression coefficients for the least-squares line:\n');
    fprintf('Slope (m)      =%12.3f\n',slope);
    fprintf('Intercept (b)  =%12.3f\n',y_int);
    fprintf('No of points   =%12d\n',n);
end
EN

回答 1

Stack Overflow用户

发布于 2010-05-01 09:15:32

如果我没弄错,也许你想这样:

代码语言:javascript
复制
x=load('-ascii',filename);
sumx =sum(x(:,1));
sumy =sum(x(:,2));
sumx2=sum(x(:,1).^2);
sumy2=sum(x(:,2).^2);
sumxy=sum(x(:,1).*x(:,2));
n    =size(x,1);

也可以试试这些

代码语言:javascript
复制
sums =sum(x);
sum2s=sum(x.^2);
sumxy=sum(prod(x,2));
means=mean(x);

还有,你知道有一个函数

代码语言:javascript
复制
[slope,int]=regress(x(:,2), [x(:,1) ones(n,1)])

这可能会省去您的工作:)

编辑

考虑到您在下面放置的内容,您的数据似乎不在单独的行中,并且只由空格分隔的数字组成。因此,如果这是正确的,则应该在load语句之后插入以下行

代码语言:javascript
复制
x=reshape(x, 2, length(x)/2);

请注意,当读取ASCII码文件时,的确切格式是很重要的!请注意,如果您的数字为奇数,则此操作将失败,如果您的文件中有任何换行符,则会给出不正确的值。

我认为你写的所有剩余代码都简化为:

代码语言:javascript
复制
x=load('-ascii',filename);
[slope,int]=regress(x(:,2), [x(:,1) ones(size(x,1),1)])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2748446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档