必须从类构造函数中调用CLASS函数

时间:2014-01-12 16:42:52

标签: matlab

我正在尝试找到结构字段的类型。

我尝试在我认为是数组的地方调用prod,但是我收到了这个错误:

??? Error using ==> prod
Dimension argument must be a positive integer scalar within indexing range.

所以我打印了有问题的对象,发现了这个:

K>> F.val

ans =

   0.110000000000000   0.890000000000000


ans =

   0.590000000000000   0.410000000000000   0.220000000000000   0.780000000000000


ans =

   0.390000000000000   0.610000000000000   0.060000000000000   0.940000000000000

这与数组的输出不同,即:

K>> [0.11 0.89 0.59 0.41 0.22 0.78 0.39 0.61 0.06 0.94]

ans =

  Columns 1 through 4

   0.110000000000000   0.890000000000000   0.590000000000000   0.410000000000000

  Columns 5 through 8

   0.220000000000000   0.780000000000000   0.390000000000000   0.610000000000000

  Columns 9 through 10

   0.060000000000000   0.940000000000000

当我在对象上调用class时,我收到此错误:

K>> class(F.val)
??? Error using ==> class
The CLASS function must be called from a class constructor.

如何找到F.val的类型?

1 个答案:

答案 0 :(得分:4)

F很可能是一组结构。因此,调用class(F.val)就像调用class(F(1).val, F(2).val, F(3).val)一样,这与单输入元素语法不同。

使用class(F(1).val)获取val第一个元素的F类。

顺便说一句,prod的错误很可能与此类似。 prod(F(1).val)可以正常工作,有两个输入,第二个被假定为维度参数,并且需要是一个整数(尽管可以是class double)。