MATLAB 无效使用运算符错误消息

问题描述 投票:0回答:1

错误在于

myfittype = fittype("A*cos(omega_0*t+phi)",dependent="A" "omega_0" "phi",independent="t",coefficients=["A" "omega_0" "phi"]);

出现以下错误消息:

File: TOungedsurfacefit.m Line: 15 Column: 58
Invalid use of operator.

我按照行错误修复消息中的建议添加了一个分号,但它没有改变任何内容 s & t 的数据类型是双精度数,它们都是 400x1 矩阵,又称工作区中垂直导入的列向量。我还看到,缺少一个闭合括号,但我也添加了它,并且仍然发生错误。如何进行?如果有任何进一步的帮助,我将不胜感激!我是 matlab 初学者,不幸的是什么都不知道。

    p=pi;
    T= 3.95;
    omega_0 = (2*p)/T;
    fo = fitoptions('Method','NonlinearLeastSquares','Lower',[-500,500],'Upper',[Inf,max(s)],'StartPoint',[-500,500]);
     %alternative:fo = fitoptions('Method','NonlinearLeastSquares','Lower',[-500,500],'Upper',[Inf,max(s)],'StartPoint',[-500,500]);   
    x = t;  
    y = s;  
    myfittype = fittype("A*cos(omega_0*t+phi)",dependent="A" "omega_0" "phi",independent="t",coefficients=["A" "omega_0" "phi"]);
    myfit = fit(t',myfittype);
    plot(myfit,t);
    xdft = fft(t); 
    camp = 2/length(t)*xdft(t);     
    phi = angle(camp); 
    A= abs(camp);

一般来说,t是x值,s是y值。我已将数据表导入为列向量。

matlab datatable signals curve-fitting data-fitting
1个回答
0
投票

您正在使用 MATLAB 的命名参数和字符串类型,这不是 MATLAB 最标准的用法(不是您的错,您正在使用文档)。

正确的语法是:

myfittype = fittype("A*cos(omega_0*t+phi)",dependent=["A", "omega_0", "phi"],independent="t",coefficients=["A", "omega_0", "phi"]);

如有疑问,请始终在数组周围添加逗号和括号。

这对我来说仍然是错误,因为你的代码不完整,所以我没有

s
t
,但
A
都没有。

© www.soinside.com 2019 - 2024. All rights reserved.