错误使用chckxy:第一个输入必须包含唯一的值,而只使用独特的价值观

101(30天)
你好,
所以我必须花键一些数据我和ginput收购。在使用样条,我得到以下错误
错误使用chckxy
第一个输入必须包含唯一的值。
起初我以为我不小心选择两个或两个以上平等点,所以我试着选择随机点,我知道肯定是不同的,我仍然得到同样的错误。
然后,我得到另一个错误 样条 本身:
[x, y, sizey endslopes] = chckxy (x, y);
记住,这甚至不是我的代码的一部分,这是matlab的函数。
我使用获得的代码点是这个:
  1. mov = VideoReader (“pendulo.mp4”);% estrutura com视频
  2. nFrames = mov.NumFrames;%的帧
  3. 帧速率= mov.FrameRate;%的帧塞贡多运动
  4. dtframes = 1 /帧速率;%节奏之间的帧
  5. i = 1;t = 0;tf = nFrames * dtframes;dt = 10 * dtframes;
  6. 如果~存在(“dados.mat”、“文件”)
  7. 而(t < = tf)
  8. mov.CurrentTime = t;帧= readFrame (mov);图像(框架);drawnow
  9. 电视(i) = t;t = t + dt;我=我+ 1;标题(strcat(“框架”,num2str(我)));
  10. [x(我),(我))= ginput (1);
  11. 结束
  12. 保存(不同。席”、“x”、“y”);
  13. 负载(“不同。席”、“x”、“y”);
  14. 结束
我和代码使用样条函数是这个:
  1. 负载(“不同。席”、“x”、“y”);
  2. xx = linspace (0500100);
  3. yy =花键(x, y, xx);
  4. 图;
  5. 情节(x, y, ro);
  6. 抓住;
  7. 情节(xx, yy,“b”,“线宽”,1.5);
我不明白为什么我在MATLAB的函数得到一个错误,为什么我必须包含唯一的值错误,即使他们 独一无二的。
数据是吞并“dados.mat”。
2的评论

登录置评。

接受的答案

dpb
dpb 2021年6月18日
> >加载不同
> >谁xy
的名字大小字节属性
x1 x58464年
y1 x58464年
> >元素个数(独特的(x))
ans =
36
> >元素个数(独特(y))
ans =
57
> >
显然,你的数据 独特的…you've only got 36 x values and 57 (closer, anyways) y values.
> >徐
徐=
1到18
0 15.7431 16.7265 17.7099 18.6934 19.6768 20.6602 47.2127 68.8481 86.5497 87.5331 89.5000 91.4669 92.4503 94.4171 95.4006 103.2680 133.7541
19日通过36
162.2735 163.2569 166.2072 167.1906 168.1740 169.1575 170.1409 171.1243 173.0912 189.8094 210.4613 222.2624 224.2293 225.2127 226.1961 227.1796 228.1630 262.5829
> > histc (x,徐)
ans =
1到30
1 3 3 1 6 3 1 1 1 1 1 2 1 2 2 2 1 1 2 3 2 1 1 1 1 1 1 1 2
31日通过36
1 2 2 1 1 1
> >
无论你以为你生成惟一值显然没有工作你认为……
以上是散点图的点云;满值是那些在x是独一无二的;我没有加上y,但这显示了问题。
3评论
赫利奥球场
赫利奥球场 2021年6月19日
所以我一直在想,也许我应该使用变量t x数据和我应该获得从ginput y变量函数。因为这是一部电影,t是不断发展的,所以我可以保证不会有两个t值是相同的。
然而,尽管改变收购t,像这样:
i = 1;t = 0;tf = nFrames * dtframes;dt = 10 * dtframes;% % 17帧ao探讨de 58岁
如果~ (“dados.mat”,“文件”)
(t < = tf)
mov.CurrentTime = t;帧= readFrame (mov);图像(框架);drawnow
电视(i) = t;t = t + dt;我=我+ 1;标题(strcat (“帧”num2str (i)));
[t (i), y(我))= ginput (1);
结束
保存(“dados.mat”,“t”,“y”);
负载(“dados.mat”,“t”,“y”);
结束
它只允许我在1值;在那之后它会自动使用拼接。我不明白为什么,因为我正在里面,所以我应该t (I + 1)。是t不代表时间吗?

登录置评。

答案(1)

赫利奥球场
赫利奥球场 2021年6月18日
显然我有两个不同的点具有相同的X值,我不得不减少点。这个解决方案不是最佳的,因为我丢失数据,但是如果你有一个更好的我将它!

标签

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!