For loop oct文件中的矩阵运算

For loop oct文件中的矩阵运算,for-loop,matrix,octave,For Loop,Matrix,Octave,我想在.oct文件中编写简洁的代码,对输入列vector/matrix执行矩阵乘法。例如,该函数在内部创建一个包含11个元素的行向量a,然后在循环中执行a*B,其中B是一个11个元素的滑动窗口,向下滑动输入向量,随着循环的进行,将结果写入输出列向量/矩阵。我尝试过使用上的信息的各种方法,但我无法编译任何东西-我得到的错误是: 错误:无法将赋值中的“矩阵”转换为“双精度” 我的代码的相关部分是:- Matrix price = args(0).matrix_value () ; // a sing

我想在.oct文件中编写简洁的代码,对输入列vector/matrix执行矩阵乘法。例如,该函数在内部创建一个包含11个元素的行向量a,然后在循环中执行a*B,其中B是一个11个元素的滑动窗口,向下滑动输入向量,随着循环的进行,将结果写入输出列向量/矩阵。我尝试过使用上的信息的各种方法,但我无法编译任何东西-我得到的错误是:

错误:无法将赋值中的“矩阵”转换为“双精度”

我的代码的相关部分是:-

Matrix price = args(0).matrix_value () ; // a single column matrix
Matrix output = args(0).matrix_value () ;

// create intermediate calculation matrices
Matrix vec_11 (1,11) ;
Matrix price_11 (11,1) ;
Matrix result (1,1) ;

for ( int ii = -m ; ii < (m+1) ; ii ++ )
 {
 vec_11 is filled in this loop and then doesn't change  
 }

for ( octave_idx_type ii (50) ; ii < args(0).length () ; ii++ )
 {
 // extract rolling window and perform matrix multiplication
 result = vec_11 * price.extract(ii-10,0,ii,0) ;
 output(ii,1) = result ; // this writing to output matrix fails
 }

retval_list(0) = output ; 
给出一个矩阵值,但我不能将其写入矩阵值或列向量值输出

在他的帮助下,我终于能够解决我的问题:

output(ii) = result( 0 , 0 ) ; // assign from indexed result matrix to output

你确定这就是你要编译的代码吗?您提到的错误与显示的代码不匹配。你能给我们展示一下再现错误的确切的东西和最小的例子吗?顺便说一句,如果您只有一列/行,那么应该使用“RowVector”和“ColumnVector”类,而不是“Matrix”。@carandraugh您说得对-我的复制和粘贴太草率了。编辑了问题以显示正确的编译错误,并添加了一些额外信息以回应您的评论。
output(ii) = result( 0 , 0 ) ; // assign from indexed result matrix to output