我在一个40×7双数据集中有3个数据集,我想将它们相乘并在一段时间内绘制结果。我的问题是如何做到这一点。
我的尝试是将数据集划分为3个单独的数据单元,并使用运算符{{A
,B
和C
(每个都有40×3)将其称为a=[{A}]
,.*a.*b.*c
和t=[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;
}
答案 0 :(得分:1)
执行此操作的一种方法是合并reshape
和permute
,并沿第三维度展示产品。
假设以下是您的数据。在你的情况下,这将是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)