nessa Posted April 14, 2011 Posted April 14, 2011 I have been using MIT's open course for linear algebra and its been great Thank you for the advice on learning matlab! But what if I do not have access to matlab? Would Octave be an adequate replacement for gaining a basic understanding of matlab or would i just confuse myself when I actually do use matlab? I know they are pretty similar and I think octave can run matlab files Thanks again! Unfortunately, my matlab knowledge is self-taught enough I don't even know what to recommend...if anybody else knows, though, do chip in! and your point about not having access is my issue with matlab- yes, it's a great program to learn with and is used widely, but it's also prohibitively expensive for anyone without an institutional license of some sort a previous poster already mentioned that having familiarity with programming in any language is the biggest help, which I agree with, and so I would say if not matlab, than go for any language that's fairly simple to pick up. To continue the MIT OCW love, their intro to programming uses Python, which is free, so I've been working on that. Once you get the basics of any language, learning it yourself is not difficult, and learning other languages after that is also not bad, but the first part is the hardest. Oh, if I could go back and give my early-college self a few tips on courses...
neuropsych76 Posted April 14, 2011 Posted April 14, 2011 [quote name=hello! ' timestamp='1302746085' post='244465] It's a good place to start, but you're right about there being slight differences... Just something to be aware about if there comes a time to make the transition. I can't comment on the specific differences though, since I've never personally used Octave. Good luck!
dahlia16 Posted April 26, 2011 Posted April 26, 2011 Matlab Matlab Matlab Matlab Matlab. Regardless of what other programs the lab uses, you can use it for most any data analysis and statistics. Many labs use Psychtoolbox, which is a plug-in for Matlab for programming behavioral tasks (stimulus delivery, subject responses, etc.). Many fMRI labs use SPM, which is another plug-in for Matlab for neuroimaging data analysis. I also think that Matlab is a pretty friendly introduction to coding and programming in general. You can learn many of the basic programming skills that will be useful in any language, but are somewhat more intuitive and easy-to-learn in Matlab (in my opinion, anyways). I learned Matlab first, then learned C++ (the lab I'm in programs tasks in it), but still use Matlab for most things. You just don't need a really low-level language for most of the things you'll want to do. Edit: Just to add, I think being proficient in Matlab was a pretty big boost in my application. It is a very versatile skill to have in basically any field that handles large amounts of data. I wish I had known this a year ago! My advisor has suggested that I learn matlab before I start the graduate program in the fall. I've never taken any kind of computer programming class, so it's been a little difficult to learn. I've got a book, matlab for neuroscientists, and I've been going through that practicing the exercises in it. Any other advice on the best way to learn this program?
neuropsych76 Posted April 26, 2011 Posted April 26, 2011 I wish I had known this a year ago! My advisor has suggested that I learn matlab before I start the graduate program in the fall. I've never taken any kind of computer programming class, so it's been a little difficult to learn. I've got a book, matlab for neuroscientists, and I've been going through that practicing the exercises in it. Any other advice on the best way to learn this program? I wish I learned matlab/programming before grad school also. I'm trying to teach myself some linear algebra and python to (hopefully) make learning matlab a much easier process. We'll see how it goes though...
cogneuroforfun Posted April 26, 2011 Posted April 26, 2011 One thing to keep in mind is you don't really need linear algebra. It can be a big help and shortcut, but you mostly just have to be comfortable working with data in arrays (rows and columns). When you're actually doing analyses, you can cut things up into one dimensional vectors that are simple to work with. Working through a simple tutorial on line to get used to the Matlab syntax is a good place to start. Practice using for, if, and while loops. Once you feel comfortable manipulating arrays and using simple loops, make some fake data (just simple x,y coordinates is fine). Plot the data as a line. Make a histogram of the data and make a bar plot. Figure out how to make a loop to scan through the data and return only certain x,y pairs. Split the data and do a t-test to see if your arbitrary groups are different. Once you can manipulate the data in these simple ways, figure out how to import data from a text file. Practice writing data back out to a text file. If you can do all that, you can certainly start looking at your real data. The best way to learn is to just start trying to do stuff. I have never taken a CS course or done any programming before Matlab, so they are definitely not prerequisites for learning, although they would help with all that early simple stuff. But you're not learning programming for the sake of programming, you're learning it to make data manipulation and analysis easier. Your Matlab code can be clunky and inefficient (and make a CS major shudder), as long as it does the analysis you need.
neuropsych76 Posted April 26, 2011 Posted April 26, 2011 One thing to keep in mind is you don't really need linear algebra. It can be a big help and shortcut, but you mostly just have to be comfortable working with data in arrays (rows and columns). When you're actually doing analyses, you can cut things up into one dimensional vectors that are simple to work with. Working through a simple tutorial on line to get used to the Matlab syntax is a good place to start. Practice using for, if, and while loops. Once you feel comfortable manipulating arrays and using simple loops, make some fake data (just simple x,y coordinates is fine). Plot the data as a line. Make a histogram of the data and make a bar plot. Figure out how to make a loop to scan through the data and return only certain x,y pairs. Split the data and do a t-test to see if your arbitrary groups are different. Once you can manipulate the data in these simple ways, figure out how to import data from a text file. Practice writing data back out to a text file. If you can do all that, you can certainly start looking at your real data. The best way to learn is to just start trying to do stuff. I have never taken a CS course or done any programming before Matlab, so they are definitely not prerequisites for learning, although they would help with all that early simple stuff. But you're not learning programming for the sake of programming, you're learning it to make data manipulation and analysis easier. Your Matlab code can be clunky and inefficient (and make a CS major shudder), as long as it does the analysis you need. Thank you for the advice!! That is relieving to know that prior programming and linear algebra are not crucial for understanding matlab. I really wish I had access to matlab so I could familiarize myself with it ahead of time. But for now, learning some basic linear algebra, python, and octave seems to be my best available situation. ...unless anyone knows else some other free ways I could get a good jump start on learning matlab
carlyhylton Posted May 10, 2011 Posted May 10, 2011 (edited) Thank you for the advice!! That is relieving to know that prior programming and linear algebra are not crucial for understanding matlab. I really wish I had access to matlab so I could familiarize myself with it ahead of time. But for now, learning some basic linear algebra, python, and octave seems to be my best available situation. ...unless anyone knows else some other free ways I could get a good jump start on learning matlab Sorry for bumming off of your thread here but I was wondering if all/or which of the above would be useful for a ) finding undergrad research assistantships in psych labs in general b ) Clinical neuropsych/Clinical psychology (my interest is in neuro research on schizophrenia) Thanks! Edited May 10, 2011 by carlyhylton
neuropsych76 Posted May 10, 2011 Posted May 10, 2011 Sorry for bumming off of your thread here but I was wondering if all/or which of the above would be useful for a ) finding undergrad research assistantships in psych labs in general b ) Clinical neuropsych/Clinical psychology (my interest is in neuro research on schizophrenia) Thanks! I would think so. I know one kid in a lab I worked in knew some computer programming and it was very useful. Having computer programming skills seems to be a big plus for any lab. Especially if your doing neuroimaging stuff, the more computer knowledge you have, the better. Linear alebra might not be that useful though
cogneuroforfun Posted May 10, 2011 Posted May 10, 2011 I would think so. I know one kid in a lab I worked in knew some computer programming and it was very useful. Having computer programming skills seems to be a big plus for any lab. Especially if your doing neuroimaging stuff, the more computer knowledge you have, the better. Linear alebra might not be that useful though I agree. Basic programming will help in any field where you do data analysis that is more than tabulating survey replies (and maybe even then). If you're doing molecular stuff related to schizophrenia, it may not be so useful; most people there seem to just use basic office programs and do simple t-tests, and there isn't much quantitative analysis necessary.
JuneTree Posted May 16, 2011 Posted May 16, 2011 I have no experience at all with programming of any sort. Any recommendations what I should do first? LJK and JuneTree 1 1
neuropsych76 Posted May 16, 2011 Posted May 16, 2011 I have no experience at all with programming of any sort. Any recommendations what I should do first? I hear python is a very easy first programming language to learn. (and its free) you can find tons of stuff searching online neuropsych76 and JuneTree 1 1
BenjaminPQ Posted May 16, 2011 Author Posted May 16, 2011 Yes, Python seems like a good place to start. I thought this Python tutorial was pretty good: http://learn-to-program.net/index.html LJK and JuneTree 1 1
JuneTree Posted May 16, 2011 Posted May 16, 2011 I hear python is a very easy first programming language to learn. (and its free) you can find tons of stuff searching online Thanks! Yes, Python seems like a good place to start. I thought this Python tutorial was pretty good: http://learn-to-program.net/index.html Thanks! Should I first learn Python, then do the Matlab online MIT course? (Am in a similar situation to OP)
cogneuroforfun Posted May 16, 2011 Posted May 16, 2011 (edited) If you don't have access to Matlab, learning to use Python will definitely help you, whether you stick with Python in grad school or end up using Matlab down the line. Looking at an online course for Matlab would be great to give you problems to solve and programming techniques to learn, but do know that there may be some differences beyond syntax. Some built-in Matlab functions may not exist for Python and vice versa, so you may run into cases where in Matlab you could just use some basic command, but have to do something more complicated in Python. Edited May 16, 2011 by cogneuroforfun
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now