gpt4 book ai didi

matlab - MatLab 中的矩阵转换

转载 作者:行者123 更新时间:2023-12-02 07:03:37 25 4
gpt4 key购买 nike

我在 MatLab 中有一个示例矩阵

>> A=[0 0 0 0; 5 1 4 6; 10 87 74 34]

A =

0 0 0 0
5 1 4 6
10 87 74 34

我想创建一个新的向量,其中包含 A 的元素但没有第一列。此外,每个元素(从第 1 行第 2 列开始)将仅放置在一列中。所以目标向量如下。

newdata=

0
0
0
1
4
6
87
74
34

我创建了一个 m 文件,它应该这样做,但我得到的只是一个向量

newdata=

34
34
34
34
34
34
34
34
34

我的代码是

newdata=zeros(size(A,1)*(size(A,2)-1),1);
for ii=1:size(A,1)
for jj=2:size(A,2)
for n=1:(size(A,1)*(size(A,2)-1))
newdata(n)=A(ii,jj);
end
end
end

我知道这是微不足道的事情,但我找不到我的错误。非常欢迎任何帮助!

最佳答案

首先,您的错误是您将 n 编写为最内层循环,这就是为什么 newdata 被每个元素一次又一次地覆盖(当然,除了第一列条目)。其次,这是一种极其低效的方式。您应该利用 MATLAB 的 colon 运算符。这可以按如下方式完成:

A=A(:,2:end);  %removing first column
A=A.';
newdata=A(:); %collapsing it to a vector and the transpose was done
%to get the desired format of the vector `newdata`. You are welcome to
%try the code without transpose and see what difference it makes.

关于matlab - MatLab 中的矩阵转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16261141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com