gpt4 book ai didi

matlab - Matlab 中的精英主义?

转载 作者:太空宇宙 更新时间:2023-11-03 19:52:29 25 4
gpt4 key购买 nike

我如何在 matlab 中实现精英主义?例如,我运行一个程序,每次运行后,一个值保存在一个变量中,比如 a 在完成所有运行后,比如 6 次运行我有 a如下

a = [7, 5, 4, 3, 6, 8];

我如何在 a 上应用精英主义?结束具有 a 的内容作为a = [7, 5, 4, 3, 3, 3];

那是我扫描 a 的时候,我会用遇到的小数字替换大数字。在示例中,在扫描 a 之后, 5<7 , 所以我保留 5 , 4<5 , 所以我保留 4 , 3<4 , 所以我保留 3 , 3<6 , 所以我替换了 63 , 再一次 3< 8 , 所以我替换了 83结束 a作为a = [7, 5, 4, 3, 3, 3];

你如何在 Matlab 中做到这一点。

尝试

我说,

if a(i)< a(i+1)
a(i+1) = a(i);
end

plot(a);

这样我就可以有一个平滑下降的图表。

但我一直有以下错误:

'Subscript indices must either be real positive integers or logicals.'

知道我如何正确地做到这一点。

最佳答案

我相信这应该适用于所有情况:

b = [a(1), arrayfun(@(n) min(a(1:n)), 2:length(a))]

a =
7 4 3 6 5 2 5
b =
7 4 3 3 3 2 2

信息:

您最初的想法是正确的,但您忘记将 if 放入循环中。你可以这样做:

for ii = 1:length(a)-1
if a(ii)< a(ii+1)
a(ii+1) = a(ii);
end
end

之所以出现错误,是因为您可能没有定义i,因此MATLAB 将其解释为虚数单位(sqrt(-1))。这也是我在循环中使用 ii 而不是 i 以避免此类错误的原因。

关于matlab - Matlab 中的精英主义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21293187/

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