在函数内更改向量中的一个元素
Changing one element in a vector within a function
我想更改向量中的单个元素:
function vecteur_avec_delai=delai(input_vecteur, iteration)
vecteur_avec_delai(iteration,1) = input_vecteur(iteration,1);
end
input_vecteur
是大小为 6001 × 1 的向量,其中填充了相同的值: 61.46
和 vecteur_avec_delai = ones(6001,1)
我想将 vecteur_avec_delai
的一个值更改为 61.46,因此仍然有一个长度为 6001 的向量,其中填充了一个值等于 61.46 的单元格,因此 vecteur_avec_delai(iteration,1) = input_vecteur(iteration,1);
当我 运行 :
vecteur_avec_delai=delai(input_vecteur, iteration)
它编译但给我输出一个 vecteur_avec_delai
大小 (iteration, 1
) 填充 0
s 除了最后一个值等于 61.46
.
当我“手动”尝试此操作(直接在 MATLAB 命令 window 中)时,它有效,那么为什么当我执行此函数时它不起作用?
您尚未将 vecteur_avec_delai
声明为函数的输入。这归结为在一个干净的命令 window 中调用 A(10,1) = 1
:它创建一个 10×1 的向量,其中有 9 个零,最后是一个 1
。相反,首先将您的数组声明为 ones,然后仅设置此必需元素:
function vecteur_avec_delai=delai(input_vecteur, iteration)
vecteur_avec_delai = ones(size(input_vecteur));
vecteur_avec_delai(iteration,1) = input_vecteur(iteration,1);
end
或者,根据您对它在命令 window 中工作的评论,只需将 vecteur_avec_delai
添加到函数的输入(您可能希望将输入和输出变量的名称更改为为清楚起见不相同)。函数是封闭的 name-spaces,也就是说,它们有自己的“工作区”,并且看不到该函数之外的任何东西,因此需要声明所有输入。
我想更改向量中的单个元素:
function vecteur_avec_delai=delai(input_vecteur, iteration)
vecteur_avec_delai(iteration,1) = input_vecteur(iteration,1);
end
input_vecteur
是大小为 6001 × 1 的向量,其中填充了相同的值: 61.46
和 vecteur_avec_delai = ones(6001,1)
我想将 vecteur_avec_delai
的一个值更改为 61.46,因此仍然有一个长度为 6001 的向量,其中填充了一个值等于 61.46 的单元格,因此 vecteur_avec_delai(iteration,1) = input_vecteur(iteration,1);
当我 运行 :
vecteur_avec_delai=delai(input_vecteur, iteration)
它编译但给我输出一个 vecteur_avec_delai
大小 (iteration, 1
) 填充 0
s 除了最后一个值等于 61.46
.
当我“手动”尝试此操作(直接在 MATLAB 命令 window 中)时,它有效,那么为什么当我执行此函数时它不起作用?
您尚未将 vecteur_avec_delai
声明为函数的输入。这归结为在一个干净的命令 window 中调用 A(10,1) = 1
:它创建一个 10×1 的向量,其中有 9 个零,最后是一个 1
。相反,首先将您的数组声明为 ones,然后仅设置此必需元素:
function vecteur_avec_delai=delai(input_vecteur, iteration)
vecteur_avec_delai = ones(size(input_vecteur));
vecteur_avec_delai(iteration,1) = input_vecteur(iteration,1);
end
或者,根据您对它在命令 window 中工作的评论,只需将 vecteur_avec_delai
添加到函数的输入(您可能希望将输入和输出变量的名称更改为为清楚起见不相同)。函数是封闭的 name-spaces,也就是说,它们有自己的“工作区”,并且看不到该函数之外的任何东西,因此需要声明所有输入。