声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2511|回复: 9

[编程技巧] std

[复制链接]
发表于 2009-2-24 11:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
X=std(X)
??? Error using ==> -
Function '-' is not defined for values of class 'single'.
Error in ==> D:\论文实验\实验数据\DeweSoft\Data\std.m
On line 44  ==> xc = x - repmat(sum(x,dim)/size(x,dim),tile);  % Remove mean

这是什么问题啊 ? 调试了 一上午  不应该是我的数据格式吧?
附件里有数据

[ 本帖最后由 ChaChing 于 2009-2-24 19:02 编辑 ]

data.txt

26.17 KB, 下载次数: 10

回复
分享到:

使用道具 举报

发表于 2009-2-24 11:53 | 显示全部楼层

回复 楼主 sandman 的帖子

LZ自己的路径中, 刚好有自订函数名称与matlab中std同名!
试试
which std -all
发表于 2009-2-24 11:57 | 显示全部楼层
std.m
换个名~~
 楼主| 发表于 2009-2-24 12:00 | 显示全部楼层

回复 沙发 ChaChing 的帖子

谢谢你的回复
自定义路径中的那个std 是我我调试时自己从datafun 中copy来的  其实那个到没什么影响 我试过不在我的工作路径中,直接调用matlab中的std 也不行。。。
我也做过 a=rand(10,1) ;b=-0.4:0.1:1; 分别测试过 这两个都行 结果也正确
  唯独我的那些数据不行  也做了abs转化成 绝对值 结果却出现这个问题:
n=abs(X)
??? Error using ==> abs
Function 'abs' is not defined for values of class 'single'.
   看来还是我的数据格式有问题?   谢谢大家都回复  帮帮忙分析下
 楼主| 发表于 2009-2-24 12:53 | 显示全部楼层

回复 板凳 波波球 的帖子

补充下 我就是想求std的样本的标准方差。。。
发表于 2009-2-24 13:17 | 显示全部楼层
which std -all
试过没! 资料没问题

?X=load('data.txt'); std(X)

ans =

    0.0489
 楼主| 发表于 2009-2-24 14:49 | 显示全部楼层

回复 6楼 ChaChing 的帖子

你的方法我试了 结果还是是这样:
which std -all
E:\Matlab6.5\toolbox\ftseries\ftseries\@fints\std.m  % fints method
E:\Matlab6.5\toolbox\matlab\datafun\std.m
>> a=std(x);
??? Error using ==> -
Function '-' is not defined for values of class 'single'.

Error in ==> E:\Matlab6.5\toolbox\matlab\datafun\std.m
On line 44  ==> xc = x - repmat(sum(x,dim)/size(x,dim),tile);  % Remove mean


是不是我的数据格式有问题啊 。。我的数据是我的实验采集后,直接生成一个*.mat文件,然后我就直接点开,自动就把数据读取到workplace 里。我就是直接调用的。。。。也用过str2num (我怀疑我*.mat文件里保存的类型是字符串)。。结果却是:
q1=str2num(x)    %x是数据
??? Error using ==> str2num
Requires string or character array input.

  数据读不了 后面就更不好分析了啊。。。

ps:在workplace里显示*。mat文件直接读出来的数据是 single array  。。一维数组
发表于 2009-2-24 18:48 | 显示全部楼层

回复 7楼 sandman 的帖子

LZ的路径没什麽问题!
怀疑数据格式有问题, 就下命令whos x 看看! 如果不是double array就有问题! 错误讯息告知x为single array!
对不起! 没注意1F的错误讯息! 但LZ也不应该使用*.mat, 但上传data.txt, 让我看过资料後, 误认资料没问题!
试试下
aa=load('data.txt'); bb=single(aa); cc=double(bb);
std(aa), std(cc), std(bb)
发表于 2009-2-24 20:28 | 显示全部楼层
数据格式是否有问题
 楼主| 发表于 2009-2-25 09:43 | 显示全部楼层

回复 9楼 yelv123 的帖子

问题解决了 我重装了matlab 把6.5改成7.6了  就行了
再次谢谢大家了

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-6-18 10:48 , Processed in 0.054593 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表