<div dir="ltr"><div>Dear Scilabers</div><div><br></div><div>I am trying to make a kind-of 3D plot, but with lines (in 2D). Attached a file that shows what I wish to do.</div><div><br></div><div>Below some code that shows current state, but given the desired result (attached), I'm not happy with it. I'm "cheating" a bit to make plot3d accept my input data and I Wonder if I'm on the wrong track?</div><div><br></div><div>Best regards,</div><div>Claus</div><div><br></div><div><pre style="font-family:Monospaced;font-size:14px;font-style:normal"><span style="color:rgb(100,174,100);font-style:italic">// Test data</span>
<span style="color:rgb(0,0,0)">frequencies</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(74,85,219)">[</span><span style="color:rgb(188,143,143)">201</span> <span style="color:rgb(188,143,143)">811</span> <span style="color:rgb(188,143,143)">3183</span> <span style="color:rgb(188,143,143)">12862</span> <span style="color:rgb(188,143,143)">25113</span><span style="color:rgb(74,85,219)">]</span><span style="color:rgb(0,0,0)">;</span> <span style="color:rgb(100,174,100);font-style:italic">// Hz</span>
<span style="color:rgb(0,0,0)">angles</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(74,85,219)">[</span><span style="color:rgb(188,143,143)">0</span> <span style="color:rgb(188,143,143)">30</span> <span style="color:rgb(188,143,143)">60</span> <span style="color:rgb(188,143,143)">90</span><span style="color:rgb(74,85,219)">]</span><span style="color:rgb(0,0,0)">;</span> <span style="color:rgb(100,174,100);font-style:italic">// off-axis angles, degrees</span>
<span style="color:rgb(0,0,0)">m_norm</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(74,85,219)">[</span> <span style="color:rgb(188,143,143)">1.0</span> <span style="color:rgb(188,143,143)">0.9945629</span> <span style="color:rgb(188,143,143)">0.9643959</span> <span style="color:rgb(188,143,143)">0.8756431</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(188,143,143)">1.0</span> <span style="color:rgb(188,143,143)">0.9914442</span> <span style="color:rgb(188,143,143)">1.0244046</span> <span style="color:rgb(188,143,143)">0.9414654</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(188,143,143)">1.0</span> <span style="color:rgb(188,143,143)">0.9910279</span> <span style="color:rgb(188,143,143)">0.9670986</span> <span style="color:rgb(188,143,143)">0.8932413</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(188,143,143)">1.0</span> <span style="color:rgb(188,143,143)">0.9339808</span> <span style="color:rgb(188,143,143)">0.8378147</span> <span style="color:rgb(188,143,143)">0.7067978</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(188,143,143)">1.0</span> <span style="color:rgb(188,143,143)">0.8985782</span> <span style="color:rgb(188,143,143)">0.7536068</span> <span style="color:rgb(188,143,143)">0.5074218</span><span style="color:rgb(74,85,219)">]</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(0,0,0)">s2d</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(0,0,0)">scf</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(160,32,240)">for</span> <span style="color:rgb(0,0,0)">i</span><span style="color:rgb(92,92,92)">=</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(255,170,0)">:</span><span style="color:rgb(50,185,185)">length</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">angles</span><span style="color:rgb(74,85,219)">)</span> <span style="color:rgb(160,32,240)">do</span>
<span style="color:rgb(0,0,0)">plot</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">frequencies</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">m_norm</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(255,170,0)">:</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">i</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(188,143,143)">'</span><span style="color:rgb(188,143,143)">-k</span><span style="color:rgb(188,143,143)">'</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(160,32,240)">end</span>
<span style="color:rgb(0,0,0)">sa2d</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(0,0,0)">gca</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(0,0,0)">sa2d</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">log_flags</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(188,143,143)">"</span><span style="color:rgb(188,143,143)">lnn</span><span style="color:rgb(188,143,143)">"</span><span style="color:rgb(0,0,0)">;</span> <span style="color:rgb(100,174,100);font-style:italic">// log x-axis</span>
<span style="color:rgb(100,174,100);font-style:italic">// Instead of above </span><span style="color:rgb(100,174,100);font-style:italic">"</span><span style="color:rgb(100,174,100);font-style:italic">flat</span><span style="color:rgb(100,174,100);font-style:italic">"</span><span style="color:rgb(100,174,100);font-style:italic"> 2D plot,</span>
<span style="color:rgb(100,174,100);font-style:italic">// now stack the plots in a 3D plot</span>
<span style="color:rgb(0,0,0)">stackplt</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(0,0,0)">scf</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(0,0,0)">sp</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(0,0,0)">gca</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span> <span style="color:rgb(100,174,100);font-style:italic">// Get current axis handle</span>
<span style="color:rgb(160,32,240)">for</span> <span style="color:rgb(0,0,0)">i</span><span style="color:rgb(92,92,92)">=</span><span style="color:rgb(188,143,143)">1</span><span style="color:rgb(255,170,0)">:</span><span style="color:rgb(50,185,185)">length</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">angles</span><span style="color:rgb(74,85,219)">)</span> <span style="color:rgb(160,32,240)">do</span>
<span style="color:rgb(0,0,0)">anglei</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(74,85,219)">[</span><span style="color:rgb(0,0,0)">angles</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">i</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(92,92,92)">-</span><span style="color:rgb(188,143,143)">0.1</span> <span style="color:rgb(0,0,0)">angles</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">i</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(92,92,92)">+</span><span style="color:rgb(188,143,143)">0.1</span><span style="color:rgb(74,85,219)">]</span><span style="color:rgb(0,0,0)">;</span> <span style="color:rgb(100,174,100);font-style:italic">// make size of arguments = 2</span>
<span style="color:rgb(0,0,0)">mi</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(74,85,219)">[</span><span style="color:rgb(0,0,0)">m_norm</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(255,170,0)">:</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">i</span><span style="color:rgb(74,85,219)">)</span> <span style="color:rgb(0,0,0)">m_norm</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(255,170,0)">:</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">i</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(74,85,219)">]</span><span style="color:rgb(0,0,0)">;</span> <span style="color:rgb(100,174,100);font-style:italic">// so that it becomes a small surface</span>
<span style="color:rgb(50,185,185)">plot3d</span><span style="color:rgb(74,85,219)">(</span><span style="color:rgb(0,0,0)">frequencies</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">anglei</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">mi</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">alpha</span><span style="color:rgb(92,92,92)">=</span><span style="color:rgb(188,143,143)">85</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">theta</span><span style="color:rgb(92,92,92)">=</span><span style="color:rgb(188,143,143)">85</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(0,0,0)">flag</span><span style="color:rgb(92,92,92)">=</span><span style="color:rgb(74,85,219)">[</span><span style="color:rgb(188,143,143)">2</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(188,143,143)">2</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(188,143,143)">3</span><span style="color:rgb(74,85,219)">]</span><span style="color:rgb(74,85,219)">)</span><span style="color:rgb(0,0,0)">;</span>
<span style="color:rgb(100,174,100);font-style:italic">// plot3d(frequencies,angles,m_norm(:,i));</span>
<span style="color:rgb(100,174,100);font-style:italic">// above command creates error plot3d:</span>
<span style="color:rgb(100,174,100);font-style:italic">// Wrong size for input arguments #2 and #3: </span><span style="color:rgb(100,174,100);font-style:italic">></span><span style="color:rgb(100,174,100);font-style:italic">= 2 expected.</span>
<span style="color:rgb(160,32,240)">end</span>
<span style="color:rgb(100,174,100);font-style:italic">// plot3d(frequencies,angles,m_norm,alpha=85,theta=85,flag=[2,2,3]);</span>
<span style="color:rgb(100,174,100);font-style:italic">// This plot expects a </span><span style="color:rgb(100,174,100);font-style:italic">"</span><span style="color:rgb(100,174,100);font-style:italic">surface</span><span style="color:rgb(100,174,100);font-style:italic">"</span><span style="color:rgb(100,174,100);font-style:italic"> - doesn</span><span style="color:rgb(100,174,100);font-style:italic">'</span><span style="color:rgb(100,174,100);font-style:italic">t work for lines</span>
<span style="color:rgb(0,0,0)">sp</span><span style="color:rgb(92,92,92)">.</span><span style="color:rgb(170,170,170)">log_flags</span> <span style="color:rgb(92,92,92)">=</span> <span style="color:rgb(188,143,143)">"</span><span style="color:rgb(188,143,143)">lnn</span><span style="color:rgb(188,143,143)">"</span><span style="color:rgb(0,0,0)">;</span> <span style="color:rgb(100,174,100);font-style:italic">// log x-axis (frequencies)</span></pre></div></div>