在matlab中检查行或列向量
我有一个处理行向量的函数。我想让它对任何类型的输入向量都通用。无论是列还是行。 我认为一种解决方案是保留现有的实现,并检查列或行类型的输入向量。 如何执行此检查?在matlab中检查行或列向量,matlab,Matlab,我有一个处理行向量的函数。我想让它对任何类型的输入向量都通用。无论是列还是行。 我认为一种解决方案是保留现有的实现,并检查列或行类型的输入向量。 如何执行此检查? iscolumn()或isrow()函数在这里不起作用 使用size检查向量的大小-如果它有一列和多行,你的函数可以使用转置变量调用自己。使用size检查向量的大小-如果它有一列和多行,你的函数可以使用转置变量调用自己。首先,验证输入是否为向量。isvector可以在这里提供帮助。或者,使用大小,或者各种技巧中的任何一种 第二,将向量
iscolumn()或isrow()函数在这里不起作用 使用
size
检查向量的大小-如果它有一列和多行,你的函数可以使用转置变量调用自己。使用size
检查向量的大小-如果它有一列和多行,你的函数可以使用转置变量调用自己。首先,验证输入是否为向量。isvector可以在这里提供帮助。或者,使用大小,或者各种技巧中的任何一种
第二,将向量转换为列向量
vec = vec(:);
第三,编写代码时总是希望得到一个列向量,因为vec(:)就是这样做的
最后,保存向量的原始形状,并重塑预期与输入形状相同的任何输出向量。所以你的最终代码应该大致像这样
% test for errors
if ~isvector(vec)
error('The sky is falling')
end
% convert to column form always
vecshape = size(vec);
% process the vector
outputvec = ... % do stuff here
% reshape the output to be the same shape as the input
outputvec = reshape(outputvec,vecshape);
首先,验证输入是否为向量。isvector可以在这里提供帮助。或者,使用大小,或者各种技巧中的任何一种 第二,将向量转换为列向量
vec = vec(:);
第三,编写代码时总是希望得到一个列向量,因为vec(:)就是这样做的
最后,保存向量的原始形状,并重塑预期与输入形状相同的任何输出向量。所以你的最终代码应该大致像这样
% test for errors
if ~isvector(vec)
error('The sky is falling')
end
% convert to column form always
vecshape = size(vec);
% process the vector
outputvec = ... % do stuff here
% reshape the output to be the same shape as the input
outputvec = reshape(outputvec,vecshape);
为什么
isrow()
和iscolumn()
不起作用?为什么isrow()
和iscolumn()
不起作用?此外,如果OP不愿意将其代码从处理行向量更改为列向量,他可以执行vec=vec(:)代码>并使用其函数而不进行修改。此外,如果OP不愿意将其代码从处理行向量更改为列向量,他可以执行vec=vec(:)代码>并使用其功能,无需修改。