【问题标题】:Filling the rows of a matrix with vectors in MATLAB在MATLAB中用向量填充矩阵的行
【发布时间】:2011-08-25 12:22:17
【问题描述】:

假设我正在使用一个计算 3 维向量的函数“fun”。我想要的是使用 for 循环创建一个矩阵,其向量“有趣”每次都计算为其行。

谢谢, 尼科斯

【问题讨论】:

    标签: matlab


    【解决方案1】:

    这取决于你要运行多少次'fun'函数?让我们称之为“n”。

    % if you know the number of times you are going to run 'fun' you can initialize the final 
    matrix to be output = zeros(n,3);
    
    n = 5;
    
    output = zeros(n,3);
    
    for i=1:n
        output(i,:) = fun(); % and you have to give whatever parameters 'fun' takes here
    end
    

    我不确定这是否完全回答了您的问题,但应该足以让您入门。

    【讨论】:

    • 我对您的问题的主要担忧是,要使用 for 循环创建它,您需要能够在循环内将输入更改为“有趣”。有多种方法可以做到这一点。如果你给出一个更具体的例子来说明你想要什么,我可以提供更多帮助。即使您不知道要运行 'fun' 的次数,您仍然可以运行上述代码。本质上,我对您的一般问题给出了一个非常笼统的答案,如果您有更多细节,我或其他人可以提供更多帮助。
    • 感谢您的回答:) 'fun' 所需的唯一输入是 for 循环的 'i'。更具体地说,我希望每次都读取不同的 .tif 图像,它们如下所示:s1_1.TIF、s1_2.TIF 等。顺便说一下,我如何在“f”的主体内部声明 F=imread(' s3_i.TIF')?
    • @nikos,你可以说for i=1:n filename = ['s1_' num2str(i) '.tif']; F = imread(filename); end
    • 如果我想这样命名一个变量,例如我有一个 for 循环:for i=1:5,我想要一个名为 m1、m2、...、m5 的变量,我要如何陈述它?
    • 再次,这将取决于您存储的内容,以及最佳使用方法。如果 'm' 只是一个数值,则每次您可以将其存储在矩阵(/向量)中。只需在每次迭代时说 m[i] = 其各自的值。您可以使用类似的方法在每次迭代中存储相同大小的向量和矩阵,但是,如果您尝试存储不同大小的项目,您将不得不使用使用符号 m{i} = 的元胞数组各自的值。这有意义吗?
    猜你喜欢
    • 2014-11-21
    • 1970-01-01
    • 2015-03-12
    • 2011-07-23
    • 2015-03-06
    • 1970-01-01
    • 2014-01-02
    • 2021-04-30
    • 1970-01-01
    相关资源
    最近更新 更多