【问题标题】:Creating an array of column vectors创建列向量数组
【发布时间】:2011-11-19 21:49:19
【问题描述】:

基本上我有一个函数,它返回一个大小为 Z(100,1) 值的列向量。我想在循环中运行该函数 n 次,并将这些列向量中的每一个存储在数组的单独索引中,但我在执行此操作时遇到了麻烦。这是我matlab不喜欢的代码...

numSignals = 30;
Z = zeros(1,numSignals);

for n = 1:numSignals

    % load signal of to be reconstructed 
    Z(1,n) = loadSignal(n);

end

【问题讨论】:

    标签: arrays matlab indexing matrix


    【解决方案1】:

    您可能应该使用矩阵来代替:

    Z = zeros(100,numSignals);
    for n=1:numSignals
        Z(:,n) = loadSignal(n);
    end
    

    然后你就可以回调你想要的列向量了

    Z(colIndex,:)
    

    Matlab 不允许您将除数字以外的任何内容放入数组的条目中。如果您真的想要您描述的数据结构,那么您将需要使用元胞数组。你可以这样做

    Z = cell(1,numSignals);
    for n=1:numSignals
        Z{n} = loadSignal(n);
    end
    

    【讨论】:

    • 使用单元格时出现以下错误???无法从 double 转换为单元格。 ==> 问题 1 在 20 处出现错误 Z(n) = loadSignal(n);
    • nvm 我需要使用 {} 来引用索引而不是 (),谢谢!
    猜你喜欢
    • 2016-01-22
    • 2013-10-04
    • 2018-08-03
    • 1970-01-01
    • 2021-03-26
    • 2017-09-09
    • 1970-01-01
    • 2014-03-19
    • 1970-01-01
    相关资源
    最近更新 更多