arrays - 是否有控制矢量默认形状的设置?
问题描述
当我和我的同事运行相同的代码时,他得到一个行单元格数组 ( 1x10
),而我得到一个列单元格数组 ( 10x1
)。是否有我们可能拥有的设置或偏好来指定元胞数组的默认结构(高与宽)?
我们已经比较了设置和输出,并且都在使用 R2018a。
形状不匹配会导致Index exceeds array bounds
错误。
解决方案
根据我的经验,最好不要假设输入的形状,而是要确保它是您所期望的(请参阅:防御性编程)。在您的情况下(向量)有两种前进方式:
形状检查:
assert( isrow(A), 'Input must be a row vector!');
形状操作:
% if you need it to be a column: colA = A(:); colA = reshape(A, [], 1); % if you need it to be a row: rowA = A(:).'; rowA = reshape(A, 1, []);
在“检查”替代方案中,您会收到有关输入形状不正确的警告,而在“操作”替代方案(我更喜欢)中,它只会处理您给它的任何形状。
另见: validateattributes
。
推荐阅读
- python - 如何获取文件中特定模式的计数?
- java - T、U、V、S、E 等通用参数有什么用?
- angular - Angular:没有为 FormControl 触发 ValueChanges
- php - 如何在 Laravel 中以正确的方式附加关系
- compilation - 如何用其他应用程序编译内核?
- r - 随机森林中的 getTree() 函数中的状态列给出了意外的值
- android - 从实时火力库中检索数据并在 recyclerview 中显示它们
- android - 如何在点击时关闭整个应用程序?
- google-app-engine - Google Pub/Sub 推送消息不适用于启用 IAP 的应用引擎
- javascript - 相同的两个页面之一有“unexpected token <”错误,而另一个工作完全正确