【发布时间】:2015-07-11 13:09:10
【问题描述】:
我必须创建一个函数,该函数将向量v 和三个标量a、b 和c 作为输入。该函数将v 中等于a 的每个元素替换为两个元素数组[b,c]。
例如,给定v = [1,2,3,4] 和a = 2, b = 5, c = 5,输出将是:
out = [1,5,5,3,4]
我的第一次尝试是这样:
v = [1,2,3,4];
v(2) = [5,5];
但是,我得到一个错误,所以我不明白如何将两个值代替一个向量中的一个,即将所有以下值向右移动一个位置,以便新的两个值适合向量因此,向量的大小将增加一。此外,如果v 中存在多个a 的值,我不知道如何一次全部替换它们。
如何在 MATLAB 中做到这一点?
【问题讨论】:
-
v = [v(1) [5,5] v(3:end)]会起作用,但取决于您想如何使用它,可能会有更好的答案 -
我必须创建一个函数,该函数将向量 v 和三个标量 a、b 和 c 作为输入。该函数将 v 中等于 a 的每个元素替换为 b 和 c。
-
@MartaSampietro - 让我明白这一点。如果我们在向量中找到值
a,是否每个元素都被替换为 2 元素向量?例如,如果v = [1,2,3,4,5]和a = 4和b = 10, c = 11,新向量是否变为v = [1,2,3,10,11,5]? -
@MartaSampietro - 我冒昧地更改了您的问题以反映您的评论。您所做的评论是一个严肃的设计元素,在您的第一个问题版本中被省略了。有了这个,很多给你解决问题的cmets现在都失效了。
-
我们的回答对您有帮助吗?
标签: arrays matlab vector indexing assignment-operator