Matlab:如何实现动态矢量

Pet*_*one 4 matlab language-implementation vector dynamic

我正在引用一个这样的例子我有一个函数来分析向量的元素'input'.如果这些元素具有特殊属性,我将它们的值存储在矢量'output'中.问题是,在乞讨时我不知道它需要存储在'输出'中的元素数量,所以我不知道它的大小.我有一个循环,在里面我绕着向量,通过索引"输入".当我考虑特殊时,这个向量的一些元素捕获'input'的值,并通过如下句子存储在向量'ouput'中:

For i=1:N %Where N denotes the number of elements of 'input'
...
output(j) = input(i);
...
end
Run Code Online (Sandbox Code Playgroud)

问题是,如果我之前没有"声明"'输出',我会收到错误.我不喜欢在输出到输出之前"声明"'输出',因为它存储了我不感兴趣的输入值,我应该想办法删除我存储它的所有值与我有关.有没有人对这个问题有所启发?谢谢.

Cha*_* L. 7

for循环中的逻辑有多复杂?

如果它很简单,这样的东西会起作用:

output = input ( logic==true )
Run Code Online (Sandbox Code Playgroud)

或者,如果逻辑很复杂并且你正在处理大向量,我会预先分配一个存储是否保存元素的向量.这是一些示例代码:

N = length(input); %Where N denotes the number of elements of 'input'
saveInput = zeros(1,N);  % create a vector of 0s
for i=1:N
    ...
    if (input meets criteria)
        saveInput(i) = 1;
    end
end
output = input( saveInput==1 ); %only save elements worth saving
Run Code Online (Sandbox Code Playgroud)