gpt4 book ai didi

matlab - 从向量 MATLAB 中删除连续的重复项

转载 作者:行者123 更新时间:2023-12-04 05:43:19 38 4
gpt4 key购买 nike

这是我的 MATLAB 代码:

[numeric, pics] = xlsread('matrix.xls');
[r,c] = size(pics);
done = r*c;

randvecall = randsample(done, done, true);
randvec = randvecall([1,diff(randvecall)]~=0);
currk = randvec(k);

本质上,它的作用是从 Microsoft Excel 电子表格构建一组值。我想在数组中有重复项,但不是连续的重复项,所以我添加了一行代码来删除它们。当我手动将值输入 randvecall 并运行上述代码时,它运行良好。但是,当我运行如上所示的代码时,出现以下错误:
??? Error using ==> horzcat
CAT arguments dimensions are not consistent.

Error in ==> testAS_randsample at 76
randvec = randvecall([1,diff(randvecall)]~=0);

为什么会这样?例如,这有效:
randvecall=[1 2 3 4 5 5 5 5 8 7 8 8];
randvec = randvecall([1,diff(randvecall)]~=0);
disp(randvec)

randvec = [1 2 3 4 5 8 7 8]

这正是我想要我的代码做的事情。但是为什么我的实际代码给了我 horzcat 错误消息?有人可以帮我解决这个问题吗?它一定与 randsample 构建 randvecall 数组的方式有关,但我不明白为什么这会给我那个错误消息?

最佳答案

这似乎是一个问题 randsample(n,k,true)有效:它返回一个 1xk向量,而您需要一个 kx1向量。移调randvecall应该做的伎俩。

编辑:

让我在代码中为一般读者重新表述:

randvec = randvecall([1,diff(randvecall')]~=0);

关于matlab - 从向量 MATLAB 中删除连续的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10997829/

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