如何用matlab的textread函数读入txt文件中的一个函数?

电路里面的一个信号是cos(t)+cos(2t)+e^(-3*t)。我现在要实现从外部文件读入这个时间域的信号,应该怎么写啊?... 电路里面的一个信号是 cos(t)+cos(2t)+e^(-3*t)。我现在要实现从外部文件读入这个时间域的信号,应该怎么写啊? 展开
 我来答
fisher_man1990
推荐于2016-05-10 · TA获得超过1231个赞
知道小有建树答主
回答量:217
采纳率:100%
帮助的人:191万
展开全部
这个问题很有意思,要综合matlab的几个函数。
解决方案如下:
1.建立一个文本文件 function.txt 当然里面的内容就是 cos(t)+cos(2*t)+exp(-3*t) 这个函数了(要提醒的是,乘号一定要有 你的cos(2t)就没有 这个是不行的,还有对于e这样的值,在matlab的表示是exp,因此e^(-3*t),也需要改写成exp(-3*t))。
2.使用importdata('function.txt')就可以得到这个字符串形式的函数,不过这个函数是装在一个cell中,所以得取出来,代码如下:fc=importdata('function.txt');fc=fc{1};
3.取出来之后得到的是个字符串啊 !怎么计算呢? matlab中专门有一个针对字符串函数的求值函数,eval,用这个函数之前建议你先help 一下 。eval的调用有两种形式,一种是拼接,另一种就是直接对字符串所表示的函数进行代入求值,很显然这里我们需要用到第二种。代码如下:
t=1.2;%%测试值
y=eval(fc);

完整代码如下:
funcion.txt中 cos(t)+cos(2*t)+exp(-3*t)
fc=importdata('function.txt');
fc=fc{1};
t=1.2;
y=eval(fc);
追问
现在的问题是 ,我需要输入的函数拉的普拉斯变换,
因为拉普拉斯在电路里面计算方便。而且 我希望得出的也是函数。
就像直接在代码里面直接写
syms t;
f=cos(t)+cos(2*t)+exp(-3*t);
X=laplace(X);
然后对X进行一系列的计算。这样可以么?
追答
可以的,
但是你的txt文件中的内容就必需格式化了,
statment.txt中的内容如下:
syms t;
f=cos(t)+cos(2*t)+exp(-3*t);
laplace(X);

在command窗口中的命令就应该如下:
st=importdata('statment.txt');
str1=st{1};
str2=st{2};
str3=st{3};

就获得了三个语句;
执行的时候使用eval
可以相继的执行
eval(str1);
eval(str2);
但是却不可以直接执行eval(str3);
因为你的X没有赋值,可以先赋值 然后再执行eval(str3);
值得注意的是,matlab中laplace函数只有符号解,就是不支持对实数求解laplace,因此X需要被设置成syms类型的。
百度网友5ac728650
推荐于2016-11-24 · TA获得超过1578个赞
知道小有建树答主
回答量:557
采纳率:0%
帮助的人:489万
展开全部
data=textread('filename.txt');
% 其中,filename为txt文件的文件名
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式