MATLAB中数据的乘法

时间:2016-07-07 11:08:00

标签: matlab plot

我在一个40×7双数据集中有3个数据集,我想将它们相乘并在一段时间内绘制结果。我的问题是如何做到这一点。

我的尝试是将数据集划分为3个单独的数据单元,并使用运算符{{ABC(每个都有40×3)将其称为a=[{A}].*a.*b.*ct=[0:40] 1}}等等 接下来,我使用a = ans(:,1:3); b = ans(:,4:6); c = ans(:,7:9); A[{xyz}]; B=[{a}]; C=[{c}]; t=[0:41]; D=(A.*B.*C); plot(D,t); 和时间public class SampleViewModel { public string TextValue { get; set; } } public class SampleViewController : UIViewController { private Binding _binding; private SampleViewModel ViewModel { get; } = new SampleViewModel(); private UITextField Field { get; } = new UITextField(); public override void ViewDidLoad() { base.ViewDidLoad(); View.AddSubview(Field); _binding = this.SetBinding(() => ViewModel.TextValue, () => Field.Text, BindingMode.TwoWay); } protected override void Dispose(bool disposing) { base.Dispose(disposing); Console.WriteLine("I am disposed"); } } (即x轴)将它们相乘。

我收到以下错误,我不知道该怎么做。

  

指数超出矩阵维度

任何可以帮助我的人?​​

OP在comment中提供的代码:

      Get:function(){
          var firstDayOfThisWeek = moment($rootScope.newDate).startOf('week').format('YYYY-MM-DD')+' 00:00:00:00';
          var lastDayOfThisWeek = firstDayOfThisWeek.clone().endOf('week').format('YYYY-MM-DD')+' 00:00:00:00';
          var allBookings = $resource(IP_ADDRESSES.dbserver+'bookings');

          return  allBookings.query({where:{or:[
                    {departure: {'>': firstDayOfThisWeek, '<=': lastDayOfThisWeek}},
                    {arrival:{'>=':firstDayOfThisWeek, '<=':lastDayOfThisWeek}},
                    {arrival:{'<=':firstDayOfThisWeek}, departure:{'>=': lastDayOfThisWeek}},

                ]}}).$promise;
            }

2 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是合并reshapepermute,并沿第三维度展示产品。

假设以下是您的数据。在你的情况下,这将是40x9。

rows = 4; cols = 6; N = 2;
x = ceil(10*rand(rows,cols))
x =
     9     6     1     6     5     8
     6     9     9     5    10     6
    10     9     7     9     6     3
     7    10    10     3     9     7

r = permute(reshape(x, rows, N, []), [3,1,2])
result = prod(r,3).'
result =
    54     6    40
    54    45    60
    90    63    18
    70    30    63

答案 1 :(得分:0)

因此,查看您的代码,似乎没有必要从中创建一个单元格: 你可以举例如:

ans=rand(40,9);
a = ans(:,1:3); b = ans(:,4:6); c = ans(:,7:9);
D=a.*b.*c;
t=[1:40];
plot(D,t)

ans=rand(40,9);
    a = ans(:,1:3); b = ans(:,4:6); c = ans(:,7:9);
    D=a.*b.*c;
    t=[0:39];
    plot(D,t)

你的t矢量必须与你的初始矩阵具有相同的长度 - 你的矩阵有40行,但你t=[0:40]创建的矢量是41个条目长,所以你可以t=[1:40]或{{1 }}

如果t是你的x轴,你应该按正确的顺序绘制它,所以t=[0:39]代替plot(t,D)