![]() To make (Mx3, 4) or (Mx5, 4) color wave, you can use interpolate2 command. Suppose we have the color wave path_color_wave (351, 4). Interpolate2 /N=(3*351) /Y= path_color_wave a x3 path_color_wave a Interpolate2 /N=(3*351) /Y= path_color_wave b x3 path_color_wave b Interpolate2 /N=(3*351) /Y= path_color_wave g x3 path_color_wave g Interpolate2 /N=(3*351) /Y= path_color_wave rx3 path_color_wave r Make /N=(351,1)/D path_color_wave r, path_color_wave g, path_color_wave b, path_color_wave a //1D waves for rgba path_color_wavex3(1053,4) is the destination wave. ![]() (4) Making a 3D surface from a 1D curve by an operation similar to "extrude" in the adobe illustrator. Y ou need to make a 2D matrix with the size of n x 2, where n is a length of the 1D data wave. If the x values are separated by a constant value, you only need to make a n x 2 matrix and paste the data value to the first and second columns, and scale the x and y indices. If the x values are not regularly separated and stored in a 1D wave, you need to make new x, y, and z 1D waves at first and convert them to a 2D matrix using "XYZ wave to matrix" macro provided by Wavemetrics. Suppose you have x wave and z (data value) wave of n points at the beginning. Make x1, y1, and z1 1D waves having 2n points. Paste x and z(data) values to 0th to (n-1)th rows of the x1 and z1 waves and again nth to (2n-1)th rows of the x1 and z1 waves. Input a single value such as "0" in the 0th to (n-1)th rows of the y1 wave and input a different value such as "1" in the nth to (2n-1)th rows of the y1 wave. Click Data->package->XYZ to matrics, and select Macro->XYZ wave to matrix. Specify X1, Y1, and Z1 waves and convert them to matrix. 6.3.1 Accessing Global Objects in a Function.Ħ.2.3 Bringing an ipf to the front in an experiment.3.5.4 "Drawn" text (less interactive than a text box).3.5.3 Tag (Text that is associated with a point in a wave).2.2.2 As a list of values, in the command line.In the example below, you are supposed to have a "original_x_wave" of 100 points as the x wave and "original_data_wave" of 100 points as the data wave.6.4.1.1 Comparison operators for Numbers.6.4.1.3 Making multiple conditional tests in the same test.6.4.1.4 Making multiple conditional tests.6.5.1 Print results to Command Window History.CTRL + M -> brings the procedure window to the front.CTRL + T -> in a graph or panel, enables or disables tools.CTRL + I -> in a graph, enables cursors ("info") ( Graph -> Show Info).CTRL + Y -> in a graph or table, rename window.CTRL + A -> in a table or in the command window: select all.-> in a graph: autoscale axes Graph -> Autoscale Axes. ![]() CTRL + Z -> undo (only one action before Igor 7).CTRL + F, CTRL + G -> find, find again (with shift, go the opposite direction).CTRL + C, CTRL + X, CTRL + V -> copy, cut, paste. I've written Igor procedure code working with notebooks to process C++ classes to write some of the more voluminous boilerplate code need to handle, for instance, box plot preferences.Waves are vectors (arrays) in which data is stored. But it works well, and should be guaranteed to continue working the same way for years to come. I hear you on the cumbersome nature of manipulating notebook selections to process text. Though since Howard is retired that's less likely! And the words "private format" make me wonder if it might change in unpredictable ways. That is guaranteed to give you plain text (UTF-8) without embedded formatting, so you can even extract text from a formatted notebook for processing. My feeling is that for extracting and processing text that's stored in a notebook, it would be safer to use GetSelection. ![]() It can even have embedded nulls, so it's hard to read, but the text itself is in UTF-8. If it's a formatted notebook, it includes all the binary-coded markers that indicate the formatting information. In the case of a plain-text notebook, that's just UTF-8 bytes, and if you restrict yourself to simple ASCII, you can read it easily. Reading the source code, and doing a couple of simple experiments tells me that the contents of S_value are simply a big blob of bytes, the bytes that define the content of the notebook. It may also be useful for programmatically transferring the contents of a notebook to a notebook subwindow. It looks to me like it's primarily intended for Howard to test notebook subwindows. Howard originally wrote all the notebook code I've seen him lurking here since his retirement, so if he thinks he has something to add, maybe he will see this and respond.
0 Comments
Leave a Reply. |