【问题标题】:Calculate a function from a number in a vector and store the result in an array in Matlab根据向量中的数字计算函数并将结果存储在 Matlab 中的数组中
【发布时间】:2012-09-26 03:05:05
【问题描述】:

假设我有一个数字数组。

S = [a_1,a_2,...,a_n]

如何计算数组中每个元素的以下函数,并将结果存储在原始元素旁边的相邻单元格中,创建一个 2x2 矩阵?

T = [a_1, 1/(n+1); ...; a_i, i/(n+1); ...; a_n, n/n+1]

对于前面提到的矩阵,'i'代表索引,'n'代表元素的总数。有没有比遍历 for 循环中的每个元素更有效的方法?如果我必须在三个这样的向量上运行这个函数,那么 for 循环会是最好的选择吗?

【问题讨论】:

    标签: matlab


    【解决方案1】:

    如果我正确理解了您的问题,应该这样做:

    n=length(S)
    T=[S;(1:n)/(n+1)]'
    

    【讨论】:

    • 我收到以下错误:“错误使用 vertcat CAT 参数尺寸不一致。”
    • @idealistikz 那是因为您的 S 可能是列向量,而不是您在问题中提出的行向量。只需转置它 S=S'。
    • 如何在不转置的情况下对列向量执行此操作?
    • @idealistikz 如果 S 是列向量并且您不想转置它(尽管我不明白为什么您不想转置它),请使用 T=[S,(1 :n)'/(n+1)]
    猜你喜欢
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    相关资源
    最近更新 更多