“iddata”类型的输入参数未定义函数“minus”

2024-03-13

这是后续我之前遇到的一个问题 https://stackoverflow.com/questions/45688607.

我想给信号一个偏移量,然后在其中添加一些延迟并计算 RMSE,但是在求差时我遇到以下问题:

我想请教以下问题:

  1. 我该如何解决上述问题?
  2. 有人可以用简单的话解释一下什么吗iddata确实如此 - 因为我研究了包括 MATLAB 在内的不同门户,但仍然无法获得一个好的概念。
  3. 如何存储类型的数据iddata在我的代码的最后部分进行减法的单元格中?

有问题的代码:

 drv(1)=load('123.mat');

 t = drv(1).x;
 ref = drv(1).y;
 angle = drv(1).z;
 Fs = 1000;              
 t1 =t';
 ref1= ref';
 d_data = iddata(ref1, t1, 1/Fs);

 %% Add offset:
 x = 1;
 afterOffset1= {};
 for i = 100:10:130 
 T = getTrend(d_data); 
 % <detrend data if needed>
 T.InputOffset = i;
 T.OutputOffset = i;
 afterOffset = retrend(d_data,T);
 afterOffset1{x,1}= afterOffset;
 x= x+1 ;
 end 

 %% Add delay:
 y=20;
 afterDelay1= {};
 for i = 1:1:4
 % delaySamples = i; % Must be a non-negative value
 % afterDelay = iddata([NaN(delaySamples,1); d_data.OutputData],...
 %                     [d_data.InputData; NaN(delaySamples,1)], 1/Fs);
 afterOffset1{i}.Tstart = y;
 afterDelay1{i,1}= afterOffset1{i};
 y= y+10;
 end 
 %% Plot:
 n = size(afterDelay1,1);
 figure();
 for i=1:1:n
 subplot(2,2,i);

 plot(d_data);
 hold all
 plot(afterDelay1{i});
 end

 sig_diff = angle(1)-afterDelay1;
 square_error(i,:) = (sig_diff(i)).^2;
 mse(i,:)=  mean(square_error(i));
 rmse(i,:) = sqrt(mse(i));


 sig_diff = d_data_1 - afterDelay; %        <<<<<<<<<<<<<<<<<<<<<< Problem is here
 %     square_error = (sig_diff).^2;
 %     mse=  mean(square_error);
 %     rmse = sqrt(mse);
 end

您很可能想要OutputData属性来自于iddata对象是输出或y您的问题的信号:

sig_diff = angle(1)-afterDelay1.OutputData;

另请注意,这将为您提供column向量,但稍后您的代码会假设它是行向量。执行上述计算后,您可能需要转置此数据,然后再继续:

sig_diff = angle(1)-afterDelay1.OutputData;
sig_diff = sig_diff.';

一般来说,iddata是创建表示输入和输出时域或频域数据的对象的函数。请注意,当您创建iddata对象,输入矩阵可能有多个源,因此每个column规定了一个来源。对于输出也可以这样说,其中每个column规定了输出。因此,在使用此函数之前转置数据非常重要,以确保每个信号位于单独的列中,或者仅使用单个列来表示一个输入/输出。

对象内部具有多种属性,包括采样时间或采样频率、函数所采用的有效域和范围以及最终访问输入和输出数据。OutputData是这些字段之一。我建议您查看有关您可以访问的所有属性的文档iddata. OutputData这里有明确的定义:https://www.mathworks.com/help/ident/ref/iddata.html https://www.mathworks.com/help/ident/ref/iddata.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“iddata”类型的输入参数未定义函数“minus” 的相关文章

  • 如何在 MATLAB 中创建带有分级标记颜色的散点图?

    我想在 MATLAB 中绘制一个简单的散点图 标记颜色从光谱的一端到另一端各不相同 例如红色 橙色 黄色 蓝色 紫色 我的数据比较了一段时间内河流的水量和水质 3 个简单的列 时间 水量 质量 我想绘制数量与质量的 x y 散点图 但颜色随
  • 从另一个视图控制器调用一个视图控制器的方法

    我在 OneViewController h 中声明了一个方法 someMethod interface OneViewController UIView tempView void someMethod end 并在 OneViewCon
  • 如何打开 matlab p 代码文件

    有谁知道如何查看 matlab p 代码文件的代码 p 代码文件专门存在 以便您可以共享代码 以便其他人无法查看它 换句话说 您看不到 Matlab p 代码文件的代码
  • 有没有办法在Python中调用子类定义的方法?

    The init 方法定义了创建类的实例时要执行的操作 创建子类时我可以做类似的事情吗 假设我有抽象类Entity class Entity def onsubclasscreation cls for var in cls annotat
  • 如何将Matlab代码库与Android集成?

    我有一个算法和 MATLAB 中的一些其他代码 我想在我的 Android 应用程序中使用它 我怎样才能做到这一点 我可以从 MATLAB 制作 jar 文件以便与 Android 一起使用吗 我必须做点别的事吗 如果您还有其他产品 适用于
  • Matlab 的快速 JSON 解析器

    您知道 Matlab 中有一个非常快速的 JSON 解析器吗 目前我正在使用JSONlab http www mathworks com matlabcentral fileexchange 33381 jsonlab a toolbox
  • MATLAB 中的抗锯齿线和标记

    您好 我在 MATLAB 中有一张图像 我希望这条线是平滑的 看看从 0 4 到 0 8 的线 这太可怕了 当在图中使用 LineSmoothing on 运算符时 我得到了这个 我在线条上做得很好 但它也使标记变得平滑 而且它们太可怕了
  • 如何在 R 或 MATLAB 中为散点图创建阴影误差条“框”

    我想在 R 或 MATLAB 中创建一个简单的散点图 涉及两个变量 x 和 y 它们有与之相关的错误 epsilon x 和 epsilon y 然而 我不是添加误差线 而是希望在每个 x y 对周围创建一个 阴影框 其中框的高度范围从 y
  • 使用 python 在网络上部署 matlab 应用程序

    您好 我想使用 python 在网络上部署 matlab 应用程序 有没有办法做到这一点 我已按照数学工作网站上的文档将我的应用程序转换为 jar 文件 java 类 有人能指出我前进的正确方向吗 事实上 您的 Matlab 代码打包为 J
  • 如何选择部分密集数据集的均匀分布子集?

    P是一个 n d 矩阵 持有nd 维样本 P某些地区的密度是其他地区的几倍 我想选择一个子集P其中任意样本对之间的距离大于d0 并且我需要将其传播到整个区域 所有样本都具有相同的优先级 无需优化任何内容 例如覆盖面积或成对距离之和 这是执行
  • Matlab 编辑器不使用 emacs 快捷方式

    Is there some way I can make the matlab integrated editor not use emacs shortcut but use more normal shortcuts such that
  • 在 C/C++ 中调用 MATLAB API

    我刚刚从某处听说 对于数值计算 MATLAB 确实提供了一些用户友好的 API 如果你在 C C 代码中调用这些 API 你可以显着加快计算速度 但我在MATLAB文档中没有找到这样的信息 例如http www mathworks com
  • 将组合字符串和数字输入的元胞数组写入文本文件

    考虑以下 DateTime 2007 01 01 00 00 2007 02 01 00 00 2007 03 01 00 00 Headers Datetime Data Dat 100 200 300 Data DateTime num
  • 在 Matlab 中快速加载大块二进制文件

    我有一些相当大的 int16 格式的数据文件 256 个通道 大约 75 1 亿个样本 每个文件约 40 50 GB 左右 它以平面二进制格式编写 因此结构类似于 CH1S1 CH2S1 CH3S1 CH256S1 CH1S2 CH2S2
  • 是否有一个函数可以检查矩阵是否对角占优(行占优)

    矩阵是对角占优 http en wikipedia org wiki Diagonally dominant matrix 按行 如果对角线处的值在绝对意义上大于该行中所有其他绝对值的总和 对于列也是如此 只是相反 matlab中有没有函数
  • 如何用Python实现FIR高通滤波器?

    首先 我在 Stack Exchange 中问了这个问题 我只得到与概念相关的答案 而不是面向实现的答案 所以 我的问题是我正在尝试创建高通滤波器并使用 Python 实现 from numpy import cos sin pi abso
  • 通过傅里叶空间填充进行插值

    我最近尝试在 matlab 上实现一个在傅立叶域中使用零填充的插值方法的简单示例 但我无法正常工作 我总是有一个小的频移 在傅里叶空间中几乎不可见 但它在时空上产生了巨大的误差 由于傅里叶空间中的零填充似乎是一种常见 且快速 的插值方法 因
  • 调用不通过空指针访问成员的非静态方法是否合法/定义良好的 C++?

    我最近遇到了以下代码 class Foo public void bar other stuff void Foo bar if this do some stuff without accessing any data members r
  • python 正弦和余弦精度

    如何提高Python正弦和余弦精度 例如 我想使用以下代码 只需计算随机复向量 x 的 y cos acos x import numpy as np N 100000 x np zeros N 1j np zeros N for k in
  • 在 Matlab 中显示有理数

    我有两个整数 m n 它们一起形成 m n 形式的有理数 现在我只想以这种理性的形式在 Matlab 中显示它们 我可以通过这样做来做到这一点 char sym m n 所以 如果 例如m 1 n 2 Matlab将显示1 2 然而 如果m

随机推荐