如何对 Matlab/Octave 中的情节进行 "even" 扩展
How to do a "even" extension of a plot in Matlab/Octave
clc
clear all
z=[1 2 3 4 5];
d=[10 20 30 40 50];
plot(d,z)
z=[z fliplr(z)];
z(5)=[];
d=[d fliplr(d)];
d(5)=[];
figure(2)
plot(d,z)
z=[1 2 3 4 5];
z=[z 6 7 8 9];
figure(3)
plot(d,z)
我正在尝试 "flip a graph on itself" 或 "fold it" ,第一个数字执行此“/”,第二个数字也执行“/”,但它向前移动然后向后移动,第三个数字执行此操作“>”,我需要它来做“/\"or "^”,无论你认为描述得更好,基本上重复图形的某种转置,我需要在它前面有一面镜子,比如在我相信傅里叶级数?
问题比这更复杂,但是这一步对于继续这样做至关重要,请帮助我这样做:/,我正在使用 Octave,但是对于像这个 MATLAB 这样基本的东西,Octave 代码应该是 interchangeable.Thanks提前
偶数扩展意味着 f(-x) = f(x):当参数 d 改变符号时相同的 z 值。您描述的过程并不完全是那样,因为反射部分将添加到原始图的末尾,以使 /\ 形状脱离 / 形状。这是如何完成的:
ze = [z z(end-1:-1:1)]
de = [d 2*d(end)-d(end-1:-1:1)]
plot(de, ze)
z值刚刚反映出来(从end-1到1重复,顺序相反); d 值由将 x 发送到 2*d(end) - x 的映射进行转换。这是使 d(end) 保持固定的反射。
在您的示例中,ze 是 [1 2 3 4 5 4 3 2 1] 并且
de 是 [10 20 30 40 50 60 70 80 90].
clc
clear all
z=[1 2 3 4 5];
d=[10 20 30 40 50];
plot(d,z)
z=[z fliplr(z)];
z(5)=[];
d=[d fliplr(d)];
d(5)=[];
figure(2)
plot(d,z)
z=[1 2 3 4 5];
z=[z 6 7 8 9];
figure(3)
plot(d,z)
我正在尝试 "flip a graph on itself" 或 "fold it" ,第一个数字执行此“/”,第二个数字也执行“/”,但它向前移动然后向后移动,第三个数字执行此操作“>”,我需要它来做“/\"or "^”,无论你认为描述得更好,基本上重复图形的某种转置,我需要在它前面有一面镜子,比如在我相信傅里叶级数? 问题比这更复杂,但是这一步对于继续这样做至关重要,请帮助我这样做:/,我正在使用 Octave,但是对于像这个 MATLAB 这样基本的东西,Octave 代码应该是 interchangeable.Thanks提前
偶数扩展意味着 f(-x) = f(x):当参数 d 改变符号时相同的 z 值。您描述的过程并不完全是那样,因为反射部分将添加到原始图的末尾,以使 /\ 形状脱离 / 形状。这是如何完成的:
ze = [z z(end-1:-1:1)]
de = [d 2*d(end)-d(end-1:-1:1)]
plot(de, ze)
z值刚刚反映出来(从end-1到1重复,顺序相反); d 值由将 x 发送到 2*d(end) - x 的映射进行转换。这是使 d(end) 保持固定的反射。
在您的示例中,ze 是 [1 2 3 4 5 4 3 2 1] 并且 de 是 [10 20 30 40 50 60 70 80 90].