![]() |
将向量附加到空的MATLAB矩阵
我有MATLAB代码将n维点(n> 1)插入矩阵( myPointMatrix )中,并且正在考虑如何插入第一个点。
现在,程序在插入点之前检查myPointMatrix的大小。如果为1x1, myPointMatrix设置为等于当前点。否则,将附加当前点。 if -statement仅一次为真,但是每次插入一个点时都会对其进行评估,这种情况非常常见。 删除if并尝试附加到myPointMatrix可以使MATLAB抱怨矩阵尺寸不一致。同时删除if -statement和myPointMatrix = 0的初始化都将导致MATLAB查找未定义的myPointMatrix 。也可以理解。 如何初始化myPointMatrix以便可以删除if -statement?还是有其他智能解决方案? myPointMatrix = 0; for x=0:limit for y=0:limit for z=0:limit tempPoint = [xyz]; if (length(myPointMatrix) == 1) myPointMatrix = tempPoint; else myPointMatrix = [myPointMatrix; tempPoint]; end end end end 回答: 使用myPointMatrix = [];初始化矩阵。 myPointMatrix越大,附加速度myPointMatrix慢。它变得越来越慢,因为每当您添加一个点时,matlab都会分配一个新大小的新矩阵,并将信息从旧矩阵+新点复制到新矩阵中。 然后最好用其最终大小初始化MyPointMatrix ,然后将点插入矩阵中的给定位置。 [url=https://stackoverflow.com/questions/781410]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 01:26。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.