How to subtract from a vector a three dimentional matrix

Hi everyone,
I have a 1x12 vector and a 3x2x12 matrix, say i x j x t. I want to subtract for each i and for each j the corresponding vector of t. I've tried the following, but it doesn't work.
for t=1:12
for j=1:2; %size(inputs,1);
for i=1:3 %10;
MSFE_i(i,:,j)=mean((y(1:12)'-forecasts_test(i,j,:)).^2);
end
end
end;
any ideas of what i am missing here? Thanks in advance.

 채택된 답변

Adam
Adam 2016년 12월 12일
편집: Adam 2016년 12월 12일
for example:
a = ones( 3, 2, 12 );
v = linspace( 0, 1, 12 );
res = reshape( bsxfun( @minus, reshape( a, [], 12 ), v ), [3, 2, 12] );
Obviously you can generalise the hard coded numbers and you don't need all the linspace stuff - I just used that to create a vector for me to subtract and then check the results quickly.

댓글 수: 2

Thank you very much for the quick response. My question is that you have created a new matrix v = linspace( 0, 1, 12 ); , but in my case the respective matrix has already values, ie it is a fixed vector with returns. How can I resize it to look like v = linspace( 0, 1, 12 ); ?
My v above is 1x12 which is the same as what you said your vector was so you just use your vector instead of my linspace-created vector.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

질문:

2016년 12월 12일

댓글:

2016년 12월 12일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by