Tag Archives: Matlab

Multi plot in Origin 9

Multi plot in Origin 9

In this post, the methodology to plot multi plots in Origin will be discussed. Origin is a computing platform to interactively plot and analyse data, and is produced by OriginLab. This is one of the most invaluable and necessary tool for scientific data analysis and plotting.

The debate between Matlab plot and Origin plot depends on the user and I will leave it  for open discussion. All that can be said is both the programs are equally good, and depending on the problem statement one can use either of the tool.

In this post, the process of plotting multiple plots will be discussed using different set of data.

Origin offers multiple way of doing this and some are shown below:

  • Trivial way

In this, the selected data can be arranged in adjacent columns, and using the plot function in  the toolbar, the data is plotted as shown.

Simple way of plotting using adjacent coloumns

Simple way of plotting using adjacent coloumns

  • Stack by offsets

In this plotting technique, the data are stacked using y-offsets. It can be plotted using the Plot-Multi plot-Stack by y offset. An example figure is shown below

Stacking by y-offset

Stacking by y-offset

  • Multi-stack plot

This is by far the most important form of multiple stack plot in which each of the data columns are plotted in individual cells and are stacked on top of the other.  An example is shown below:

Multiple Stack plot

Multiple Stack plot


There are multiple other ways to perform multi-plots. These options can be found in the Plot function in the toolbar, and the reader can try the various functions.

An evaluation version of Origin can be found here.

Tr-AMR angle

Obtaining magnetization orientation from magneto resistance

Obtaining magnetization orientation from magneto-resistance

Magnetism is a fascinating subject, not in terms of the science and understanding of it, but in terms of the application it has unfolded in the recent years. With the discovery of the Giant Magnetoresistance effect, which led to the birth of spintronics, technology around us has changed drastically and rapidly.  Data storage has transformed from bulky HDD s to more recent MRAMS, and DRAMS.

Spintronics which means the field of study on spin dependent magnetism phenomena, has done great  invaluable impacts not only to the storage industry but to the communication industry as well.  I will try to post more articles about the history of spintronics and their practical implications in another post .

As such, it can be realized that it is very much necessary to understand the process of the magnetization change in order to have any product designed out of it. One such tool to probe the magnetic property of a material is by performing a magneto resistance measurement of the material.

However the measured magneto-resistance is obtained  in units of resistance (ohms) and therefore it becomes necessary to extract the magnetization angles from the resistance to understand a quantitative magnetization switching process.   In this post, I have included a code, which converts the measured transverse anisotropic magneto resistance into magnetization angle with respect to the [010] crystal axes.

It is quite useful to have the AMR in terms of magnetization angle, because we can then explain the path of the reversal process, and design materials to alter or control the magnetization.

Find the code here:

GitHub link.  for the code.




Manipulating a string in MATLAB

Manipulating a string in MATLAB.

Following the previous post, where a string can be modified at vowel locations, and written over several times in a cyclic order, this post is about some more  vowel manipulation using Matlab.

So, after the previous post, my colleagues at work gave me a new challenge to do in Matlab. The problem statement was :Matlab is given a string (aka statement) which is a general combination of a lot of vowels and constants that make up words. Say for example like this:

monkeys like eating bananas that are ripe and yellow.

Assuming all the letters are in small ( program can be edited to have letter sin both caps and small as well) , the program reads through the statement and replace the last vowel in every word with nothing , or just truncates it. To add to the challenge the solution must be done without using an inbuilt library functionality.

Therefore after doing what has been asked for, the final output should be this :

monkys lik eatng banans tht ar rip nd yellw.

So,  attempted to solve this using matlab and you can find the code here:

Code here:

The way I solved is this. I am sure there can be several other ways to do that, and I am looking forward to hear from you in the comments section.

My algorithm:

  1. Add a space to the end of the string.
  2. Find the number of spacer by iterating through the string and checking for integer value of each character. The ASCII value of space is 32.
  3. The number of space is equal to the number of words then. Since we have added an extra space to the end.
  4. Now ask matlab to loop through each word. This can be done by space locations and first character. It can be made simpler by adding a space to the beginning of the statement as well. Then the whole string is homogeneously spaced.
  5. Fing the index of vowels in each word.
  6. list the index of each vowel
  7. Remove it by using a logical indexing operation.
  8. Print it.
  9. And you are done !

Download code here.

Let me know about your algorithm in the comment sections.







Writing Impositions in Matlab

Writing Impositions in Matlab

This post is for students who do not do their homework (like me when I was in school) and are punished with writing impositions. The imposition would usually be writing something like a very long statement with no meaning several times. Like back in my school days, when we were told to write them on paper using a pen or pencil. But these days students and truants are asked (ordered!) to write them in a word-processing software. Well, we can think of using the classic trick of Ctrl+C and Ctrl+V, but it depends on the imposition type, right!

Like for say here, we are asked to write this statement :

“The quick brown fox jumps over the lazy dog”.

And the teacher asks you to change every vowel with its preceding vowel in each iteration.That would mean , in my first statement, a is replaced to e, e is replaced by i, i is replaced by o, o is replaced by u, and u is replaced by a. In subsequent iterations, the replaced vowels are replaced by their preceding vowel. And this has to be done say 100 times. (Quite a tough punishment!). This case can not be done in MS Word or any other word processor, so the student has to do type this manually each time or just do his homework instead.

However, good news! I have a Matlab code for you, which will do it for you however number of times you want to write. In the end, all you have to do copy the final output to a word processor  and get the print. The code is as simple it can be without using any library functions so that people with no knowledge about Matlab can still use, because then it is just English to understand.

You can get the code here, and use an online compiler to run it .

Download code here:




A simple moving point average in Matlab

A simple  moving point average in MATLAB.

A moving average or a rolling average is one of the most common smoothing technique used to extract a good signal out of a very random noisy signal. This technique is usually used to see the behavior of a function or  a signal, when the physical parameters and environment have an erroneous effect on the measured signal.

Given a series of numbers and a fixed subset size, the first element of the moving average is obtained by taking the average of the initial fixed subset of the number series. Then the subset is modified by “shifting forward”; that is, excluding the first number of the series and including the next number following the original subset in the series. This creates a new subset of numbers, which is averaged. This process is repeated over the entire data series. The plot line connecting all the (fixed) averages is the moving average. A moving average is a set of numbers, each of which is the average of the corresponding subset of a larger set of datum points. A moving average may also use unequal weights for each datum value in the subset to emphasize particular values in the subset.

The general technique involves finding the mean  from an equal number of data on either side of a central value. This ensures that variations in the mean are aligned with the variations in the data rather than being shifted in time. There can be some anomalies when the variation is not uniform as well, but this will not be discussed here.

There can be different types of moving point averages like  the

  • Cumulative moving average
  • Weighted moving average
  • Exponential moving average
  • Modified moving average, and
  •  Regression  moving average methods

In this post I have attached a MATLAB code to do a simple moving average. This code can be used to smooth a signal with some nice feature but with a small background noise without compromising on the data value. But be careful on the window span of the average for your own data.

Find the code here: