Matlab 如何将一个向量分成两个相等的向量?
我需要在MATLAB中将一个向量分成两个相等的向量。你能帮我吗?Matlab 如何将一个向量分成两个相等的向量?,matlab,Matlab,我需要在MATLAB中将一个向量分成两个相等的向量。你能帮我吗? 例如,如果我有向量x=[1 3 7 9],我需要两个向量将其拆分为y=[1 3]和z=[7 9]。我建议检查一些基本的matlab操作 如果取向量x 你可以很容易地将他分成不同的新阵列。如果你想使用相同长度的数组,你应该使用numel或size来获得大小,然后取一半 length_of_x=numel(x); new_length=ceil(length_of_x/2); 我使用ceil四舍五入,以防你的x没有长度:2,4,6,
例如,如果我有向量x=[1 3 7 9],我需要两个向量将其拆分为y=[1 3]和z=[7 9]。我建议检查一些基本的matlab操作 如果取向量x 你可以很容易地将他分成不同的新阵列。如果你想使用相同长度的数组,你应该使用numel或size来获得大小,然后取一半
length_of_x=numel(x);
new_length=ceil(length_of_x/2);
我使用ceil四舍五入,以防你的x没有长度:2,4,6,8等等,而是1,3,5。。。然后您可以使用1:new_length获得前半部分,使用new_length+1:end获得后半部分
x1=x(1:new_length);
x2=x(newlength+1:end);
将是您任务的结果 我建议查看一些基本的matlab操作 如果取向量x 你可以很容易地将他分成不同的新阵列。如果你想使用相同长度的数组,你应该使用numel或size来获得大小,然后取一半
length_of_x=numel(x);
new_length=ceil(length_of_x/2);
我使用ceil四舍五入,以防你的x没有长度:2,4,6,8等等,而是1,3,5。。。然后您可以使用1:new_length获得前半部分,使用new_length+1:end获得后半部分
x1=x(1:new_length);
x2=x(newlength+1:end);
将是您任务的结果 end是MATLAB中的一个聪明的命令,在许多情况下都可以作为快捷方式使用,例如,当您只想获取向量的前半部分时,如下所示:
v(1:end/2);
您可以在匿名函数句柄中使用deal将向量拆分为两个:
split_vec = @(x) deal(x(1:floor(end/2)), x(floor(end/2)+1:end));
[a, b] = split_vec(1:10)
a =
1 2 3 4 5
b =
6 7 8 9 10
end是MATLAB中的一个聪明的命令,在许多情况下可以用作快捷方式,例如,当您只想获取向量的前半部分时,如下图所示:
v(1:end/2);
您可以在匿名函数句柄中使用deal将向量拆分为两个:
split_vec = @(x) deal(x(1:floor(end/2)), x(floor(end/2)+1:end));
[a, b] = split_vec(1:10)
a =
1 2 3 4 5
b =
6 7 8 9 10
把它放在函数中是个好主意+1如果要将其设置为函数,则可以沿指定的维度拆分,或者检查维度数,如果大于1,则抛出错误…@Dan您是对的,但另一方面,他的函数称为dividevectorintotoo。。。所以我想你们可以论证,它只适用于向量,根据定义是一维的。把它放在一个函数里是个好主意+1如果要将其设置为函数,则可以沿指定的维度拆分,或者检查维度数,如果大于1,则抛出错误…@Dan您是对的,但另一方面,他的函数称为dividevectorintotoo。。。所以我想你们可以论证,它只适用于向量,根据定义是一维的。