你好,我WQ12jymatlab, 昨天提问的问题,我今天运行的时候出错了。不知道什么原因能否邀请你帮忙解答下。

要上能加下QQ627915537那就好了。如下是我的程序;
function y=dutext('D:\job\matlab\wujiang\数据20140509\矩阵数据\cl60轮廓处理\p3\p3车轮\车轮原始1.txt');fidin=fopen('D:\job\matlab\wujiang\数据20140509\矩阵数据\cl60轮廓处理\p3\p3车轮\车轮原始1.txt');i=1;while ~feof(fidin) tline=fget(fidin); tmp=find(tline==','); l=length(tline); a(i)=str2num(tline(2:tmp-1)); b(i)=str2num(tline(tmp+1:l-1)); i=i+1;endy=[a;b]';end
运行出现在以下错误:
??? function y=dutext('D:\job\matlab\wujiang\数据20140509\矩阵数据\cl60轮廓处理\p3\p3车轮\车轮原始1.txt'); |Error: Function definitions are not permitted in this context.

下面为文件格式。

宝贝。你貌似对于MATLAB的函数还不是特别了解啊。首先,你要新建一个function,把代码拷进去,然后保存成“dutext.m”。然后,你自己新建一个script,输入"y=dutext('D:\job\matlab\wujiang\数据20140509\矩阵数据\cl60轮廓处理\p3\p3车轮\车轮原始1.txt');",然后运行就OK了。函数如下,这个x是个变量,你不用改这个的。每次想读文件的时候,只要写"y=dutext('文件路径');"就好
function y=dutext(x);
fidin=fopen(x);
i=1;
while ~feof(fidin)
tline=fget(fidin);
tmp=find(tline==',');
l=length(tline);
a(i)=str2num(tline(2:tmp-1));
b(i)=str2num(tline(tmp+1:l-1));
i=i+1;
end
y=[a;b]';
end追问

谢谢指教,因为我没有学过matlab,所以基础也基本为零,只是自己在网上学了几个函数而已。你的回答我这次好像明白了,但是会出现dutext.m第5行错误。为什么?

追答

你看到你定义的函数第一行后边的分号了么,把他删掉应该就可以了。另外,一定要确认你新建的是个function哦,然后再把函数贴进去。我已经再次测试过了。

追问

总算可以了,第5行:fget改为fgetl就可以了。但是读取的数据组y只有4个小数点,怎么修改程序使之读取的数据精确呢?

追答

matlab精度控制用digits(n)和vpa()两个函数来控制。n确定了你需要小数点后面多少位。原函数作以下修改。
function y=dutext(x);
fidin=fopen(x);
i=1;
digits(10);%!
while ~feof(fidin)
tline=fgetl(fidin);
tmp=find(tline==',');
l=length(tline);
a(i)=vpa(str2num(tline(2:tmp-1)));%!
b(i)=vpa(str2num(tline(tmp+1:l-1)));%!
i=i+1;
end
y=[a;b]';
end

追问

你就好人做到底,我追分的。新问题又出现了,那么我要调用好几个这个的.txt数据。来做图。那么这个dutext只能赋一个.txt,如果调用多个.txt如何操作。

追答

你就多使用几次就行了。比如你有1.txt,2.txt,3.txt。
那你就这样写喽。
a=dutext('1.txt');
b=dutext('2.txt');
c=dutext('3.txt');
然后你就得到了对应的三个数组a,b,c,你要是有很多个文件,假设是n个,你以后想用循环使用这几个数组,就这样。
A=cell(n);
A{1}=dutext('1.txt');
A{2}=dutext('2.txt');
A{3}=dutext('3.txt');
另外,我看你运行的时候是在matlab的命令窗口。我推荐你新建一个script,然后在里面复制上面的代码,然后点击RUN(一个绿色的箭头),就可以跑了。然后你就得到你想要的数组了。
看你的基础真是很薄弱,最好在编程使用前看看基础知识,这样你理解起来就方便多了。

来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网