2017-06-20 37 views
0

我有三維速度數據,我從不同的時間步驟 導入到matlab中,然後將數據存儲到單個數組中,因此例如,乘以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,對於下一列和任意數量的列都是相同的。我想將這些值存儲到另一個數組中。我需要一些關於如何進行乘法的幫助。

回答

2

使用bsxfuntimes這樣的:

req = bsxfun(@times, A(1,:),A(2:end,:)); 

如果你有MATLAB R2016b或更高版本,你可以使用這樣的隱式擴張:

req = A(1,:) .* A(2:end,:); 
1

這應該做的,但我相信有是一種更優雅的方式

B = repmat(A(1,:), size(A, 2), 1); C = A; 
C(2:end,:) = A(2:end,:).*B(2:end,:); 

A是您的初始矩陣,C是您的最終答案。

相關問題