function - 在matlab中创建一个连接矩阵
问题描述
我需要你的帮助。我想制作一个 15x2501 尺寸的矩阵。我正在使用这段代码。
%values of Kh
Kh = [1*10.^-7 1*10.^-6.5 1*10.^-6 1*10.^-5.5 1*10.^-5 1*10.^-4.5 1*10.^-4 1*10.^-3.5 1*10.^-3 1*10.^-2.5 1*10.^-2 1*10.^-1.5 1*10.^-1 1*10.^-0.5 1*10.^0];
%
% Matrix by each value of Kh
HMC_Kh = zeros(length(Kh),2501);
for i = 1:length(Kh)
[H,ZH,h,Zh] = func_Kh(Kh(i));
HMC_Kh = [HMC_Kh; H];
end
当我运行代码时,matlab 向我显示此消息:
Error using vertcat
Dimensions of matrices being concatenated are not consistent.
Error in val_Kh_feb (line 13)
HMC_Kh = [HMC_Kh; H];
函数func_Kh根据取 Kh 的值返回最大 1x2501 维的变量 H,或者函数func_Kh可以返回最小 1 x 500 维的变量 H。也就是说,H随着Kh取的每个值而变化,所以当H为1x500维时,矩阵可以在每行H的最后一个值之后用零填充,这样每一行的维数都是1x2501。
我希望你能帮助我解决这个错误,肯定很傻,我学习matlab。
谢谢!
解决方案
交叉张贴在 MATLAB Answers 上,但在此处重复答案。改变这个
HMC_Kh = [HMC_Kh; H];
对此
HMC_Kh(i,1:numel(H)) = H;
您当前的代码存在两个问题。每次迭代时 H 中的元素数量不同,从而导致您已经发现的连接错误。但是您在每次迭代时都将 H 附加到 HMC_Kh ,因此您的预分配没有意义,除非您真的希望结果以一大块 0 开头。
推荐阅读
- angular - 如何修复 Karma 中的空白页?
- java - extras.getString() 检索正确的值但分配 null
- jquery - 如何使用 CSS 编辑 jQuery 表格
- jquery - 如何访问数组元素jquery?
- angularjs - 如何获取迭代元素angularjs的位置?
- selenium-webdriver - 为什么此代码显示错误,而按钮靠近密码字段后?
- php - Detect when a user changes any of their billing details (user meta)
- botframework - Speech functionality not working in IFrame
- laravel - 如何使用 Laravel 在引导模式中获取动态数据?
- macos - Safari 应用程序扩展:contentBlocker(withIdentifier:blockedResourcesWith:on:),它是如何工作的?如何让它工作?