我有3D速度数据,我从不同的时间步骤导入到matlab中 然后将数据存储到单个数组中,例如
A =
1.9003018979277591 3.9313938050246353 1.9550611401555038 4.4729389195345890 -0.1923084604908526
1.9079954278788835 3.9313938050246353 1.9236081195213699 4.4656360727573148 -0.2883623514359477
1.9156889578300083 3.9313938050246353 1.8600046726104833 4.4633941493518368 -0.3745597398775253
1.9233824877811327 3.9313938050246353 1.7774536511804597 4.4684591066449331 -0.4468743057900739
1.9310760177322572 3.9313938050246353 1.6785880816271836 4.4792352570817320 -0.5015682599033333
1.9387695476833817 3.9313938050246353 1.5789717220681783 4.5015318412785614 -0.5414950892833046
1.9464630776345062 3.9313938050246353 1.4803758914752310 4.5382688538970140 -0.5671639103123366
1.9541566075856309 3.9313938050246353 1.3954540252731027 4.5972897305115961 -0.5822441272159316
1.9618501375367554 3.9313938050246353 1.3209857949421817 4.6788923156623099 -0.5844651059587465
上面的数据是一个单独的数组,它包含一系列时间步长的所有V速度值。我想现在将每列的第一个值乘以下,例如1.9003 * 1.907,然后是1.9003 * 1.915,所以对于下一列和任意数量的列都是一样的。我想将这些值存储到另一个单个数组中。我需要一些关于如何进行乘法的帮助。
答案 0 :(得分:2)
将bsxfun
与times
一起使用,如下所示:
req = bsxfun(@times, A(1,:),A(2:end,:));
如果你有MATLAB R2016b或更高版本,你可以使用这样的隐式扩展:
req = A(1,:) .* A(2:end,:);
答案 1 :(得分:1)
这应该做,虽然我确信有更优雅的方式
B = repmat(A(1,:), size(A, 2), 1); C = A;
C(2:end,:) = A(2:end,:).*B(2:end,:);
A
是您的初始矩阵,C
是您的最终答案。