MATLAB is software used for numerical computing/engineering, which also has its own programming language.
Obviously, if you don't have access to MATLAB, you need to obtain it (ask your teacher, because your school may need to get/already have licenses for it). But basically, you first need the MATLAB environment before going into the language because, well, the environment is pretty much where you have to run your code.
To be honest, I probably wouldn't recommend someone who has little programming experience to learn MATLAB's language, especially when the purpose is for robotics, but I suppose you'll have to make do with what you already know. As for how to learn the language, MATLAB's documentation is all freely available online, though, again, I would encourage you to get used to using the software itself first before diving into the language/programming aspects of it.
MATLAB (http://www.mathworks.com/products/matlab/) I can:
As a manager I don't do much technical work. Instead, I decide between technical options after consulting with the subject matter experts (SMEs) and my decisions take into account many factors including technical performance, risk, schedule & cost. The SMEs certain do some hand/back of the envelope calculations (how hot will this component get under these conditions? What's the shear load increase on this bolt if the box became 3 kg heavier?) but they mostly use speciality tools like Nastran, Thermal Desktop, or roll their own code in Matlab.
That's for a commercial license I think. MATLAB Home is only 150 USD for the base package. See here: http://www.mathworks.com/products/matlab-home/?s_tid=tb_home
Of course, I need a few add-on packages that bump the price up...
MATLAB is a high-level technical computing language and interactive environment for algorithm development, data visualization, data analysis, and numerical ...
Fluid simulations & engineering/scientific programs like MATLAB & SolidWorks/RealFlow/CFD Flex/OpenFOAM. Also any medical imaging NEEDS double precision (can't fuck that up). Stuff where you absolutely need to be accurate because $$$$ or lives are on the line. Most 3D modeling (like Blender / Cinema 4D) and video rendering (Premiere) use single precision from my what I've read (can't think of any that use double). Gaming is single precision also.
The controller is designed using Simulink. The 3D simulation is made using SimMechanics, a multibody dynamics simulator. Other coding is done using MATLAB. All made by MathWorks. You can get this software relatively cheap nowadays( ~$350.00, US) for home/hobby use. They also have a 30 trial. There are other multibody dynamics simulators, some better, some free, some examples . Integrating them with a controller is more involved, so I opted to spend some money to get Simulink. You design your controller with it and it plugs directly into your mechanical model. One major drawback is that you have to roll your own contact dynamics. I got the foot contact and friction model from here. The Simulink model is at the bottom of the page.
Magnetic fields, when superimposed, obey the simple rules of vector addition. Any software that can display vector fields should be sufficient, e.g. MATLAB, Octave(which is free!), or Mathematica.
Reusing gigabit LAN? Practically all new motherboards will come with onboard gigabit LAN connections.
http://www.mathworks.com/products/matlab/choosing_hardware.html#_Hardware_Considerations
Going off MATLAB requirements, AMD would be a poor choice as there is only one FPU across two cores, or a single module. Meaning it will only perform like it has 4 cores. Also hyperthreading is useless as well. So a intel 4 core with no hyper threading would be best and would completely destroy a laptop in performance. As most laptop CPUs are just dual cores with hyper threading. Looking at passmark scores an i7 laptop performs worse than an i3 desktop.
MATLAB also wants a lot of RAM depending on what you are doing. So 16GB should be used.
Your budget is too low for overclocking which would have helped.
Windows Pro eats a very large part of your budget, it was cheaper to get Win 8.1 Pro then upgrade to Win10 (saves $35). Do you really need WIn 10? Or can your teacher get a windows license from the school as this will be used for teaching.
The video security system (cameras, DVR and monitor) is a old Samsung SMT-190DN that I am limping along, it's near death. The cameras are SOC-N120's and they're not too bad except for the lame RJ-11 connectors. The built in "web monitoring" software is incompatible with my phone so I wrote a program in Matlab (http://www.mathworks.com/products/matlab/) that will alert me by text if there is activity on the property. It sends me a series of still frames from the video feed and specifies the "zone" which has been violated (Arduino IO interface). I also have it set up so when I'm at home a synth voice is activated over a speaker system that tells me about the activity on the property.
From matlab.com
MATLAB® is a high-level language and interactive environment for numerical computation, visualization, and programming. Using MATLAB, you can analyze data, develop algorithms, and create models and applications. The language, tools, and built-in math functions enable you to explore multiple approaches and reach a solution faster than with spreadsheets or traditional programming languages, such as C/C++ or Java™.
Product Overview 2:05
You can use MATLAB for a range of applications, including signal processing and communications, image and video processing, control systems, test and measurement, computational finance, and computational biology. More than a million engineers and scientists in industry and academia use MATLAB, the language of technical computing.
Wolfram Alpha was the first system that came to mind that could calculate a number that large (and managed to do it surprisingly quickly), but still it only gives the exponential approximation. I've never seen a consumer calculator that could work out a nearly 15-million-digit-long number like that. I'm not sure programs like MATLAB deal with numbers that big. There are ways I'm sure, but the only way I can think of would be relatively slow, and any other way is above my modest level of comprehension.
Edit: On further thought, the very last digit in the 1's place is easy. Any number ending with 6 multiplied by another number ending in 6 will end in 6, so 16777216 * 16777216 * ........ * 16777216 is going to end in a 6. It's all the digits in between the initial 1 and the final 6 that's the hard part.
550W is enough for the build. I wouldn't worry about that, unless you're going to do some serious upgrading in the near future. I used this for my info, and it seems to me that 8gb should be enough, but i've never worked with the program. See if you can run the program on another computer, and open the task manager to see how much RAM it is using. Don't be afraid to push the program. See how much ram at max power the program will use. I would judge it off that.
Well there is Matlab coder which converts Matlab to C/C++. I haven't personally used it. I heard it can produce bugs when used on complicated code.
Matlab is great for design work and simulations, which is usually the type of problems taught in university. Once the product or whatever is fully defined, then the algorithms are trimmed down and ported to C/C++ or HDL or platform specific, as MalakElohim posted. It ultimately depends on the application, but for a mechatronics professor to skip Matlab completely and do everything in python strikes me as ludicrous.
Mathworks says that you probably won't get any benefit from hyperthreading, just FYI.
I've used MATLAB on an i7-2600K and never noticed the virtual threads really being used. It does love to load the physical cores though, so I'm guessing the software isn't really optimized for virtual threads.
I work for hedge funds and investment banks in operations, however If I were able to go back in time, I'd pick up MatLab, R and C++.
In the industry, they seek people with Math or Finance degrees, with the ability to program computers. Investment banks, brokerage houses and hedge funds all keep historical market data. Every tick on the stock market gets saved. Quantitative Analysts will do statistical analysis on the historical data looking for trends for future investments. (if the GDP is X, and Housing is y, and Unemployment is n, and Lowes is moving at slope j, then Home Depot with a %70 chance can be expected to move q points). When relationships are established, an algorithm is written in which LIVE (not historical) market data is driven. The algorithm will automatically place trades based on the analysis.
People who do this for a living use Matlab and R to read/parse the historical data and perform complex mathematical analysis on it. They use languages like C++ to write trading systems.
Anywho, it's a thought if you're interested in combining both into a career. The money is great. If you're interested, check out what the requirements are for the jobs. I wish I knew that such jobs existed when I was in college, it's something I would have liked to pursue.
What do you need help with? Matlab is a very extensive tool, and there is really no single resource. I have used Matlab and Simulink extensively.
I am pretty sure that if you have exercises, the first few assignments will be about learning how to work with matlab. Also, it is very C-like, so if you have had any introductionary EE programming you'll do fine. The function browser is very good at finding whatever you need.
One of my favorite examples of how to use matlab, is this example about sunspots. It shows the FFT which is fundamental in EE, it uses real data and it is, in general, a very interesting topic.
The OP was inquiring about the newly-released MATLAB Coder. My understanding is that it's progressed quite far from most people's impressions from past experience.
Well, by platform do you mean matlab vs. other things, or do you mean linux vs windows vs mac etc.? Yes, it's not open, but matlab has long been available for linux (which is a major platform in scientific/engineering computing) as well as windows and macosx. OTOH, I only mean x86/x86-64 linux. Obviously, you'd really want this sort of thing on an embedded computer which is probably (modulo intel atom) going to be non-x86.
There is GNU Octave, which is similar to matlab, and can be persuaded onto non-x86 platforms (typically not without problems - floating point is a tricky area).
You'll need some glue. Matlab has an API, but not for JavaScript. They do have Python, which would allow you to write a small web application. From there, it's pretty trivial to get the values into your UI, depending on what web framework you use.
You could also use their SDK to develop a .NET or Java web application. And again, getting the values to the UI is straight-forward after that point.
It's hard to say, it could very welled exceed the minimum hardware requirements. This is one shop's take on Autocad or Mathlab's Choosing Hardware page
Matlab is a programming language. I imagine you have encountered it in the course of your studies. If you haven't, their website is http://www.mathworks.com/products/matlab/, which will give you a nice overview.
As for "what type of projects" you'll be able to make, that's up to you, buddy. The only big things I've made in MATLAB are for my employer and for MATLAB classes I've had to take at school. I'll be honest and tell you that I don't just sit on MATLAB all day thinking of cool things to code with it. :P
Like if you have a device running Android? or LibreOffice (admittedly not a requirement for all components), CrashPlan or GoToMeeting/GoToMyPC (or other Citrix stuff).
Sure it might be marginalized for desktop applications, but there are common pieces of software that are either built on it or on some level depend on it.
Edit: Also, anything based around Eclipse (which includes all kinds of embedded development IDEs), MATLAB, Maple and COMSOL. Add in that these tend to use their own java installation that never gets updated and sometimes they have web viewing capabilities...
You can generate c-code from MATLAB using 'MATLAB Coder' that can run completely independent from MATLAB.
I personally don't know how to create an app for a phone but you could call the functions in the generated code from a hand written main-file.
Thanks very much for the link to the benchmarks! I'm glad the i5 has better performance, as from what I've read MATLAB seems to work best with Intel processors. Does anyone have any experience otherwise? I only say this because I saw a post here: http://www.mathworks.com/matlabcentral/newsreader/view_thread/293427 where someone had to modify some config files to get AMDs to work.
Now that I've had some time to think about it, I think I might go for an i7. Though it seems MATLAB can't take much advantage of hyperthreading (link: http://www.mathworks.com/products/matlab/choosing_hardware.html), I tend to have a lot of programs open when I'm developing (Xilinx ISE, Eclipse, MATLAB, etc)
Is it just me or did you define y as a vector, then define it again in the loop as a matrix? What was the point of the first y? You never used it.
At any rate, I wish I could go back and forth with you, but I have to go.
Instead I'll give you trouble shooting advice:
When looking at the m file in the editor, you'll notice hash marks down the left hand side. Click on one, it should turn into a dot (red I think). Now hit the play button. The code will run until it hits the line you've indicated. At which point it will stop and wait for you to do something. Along the tool bar at the top you'll see some buttons for debugging. One says "step". This button will advance one line at a time. The point of this is to go through the code step by step. As you go, make sure that you are getting expected results. For example, if you put the dot at the line where you define A, you can hover over the y and it will show you what y is equal to. Hit the step key, and it will advance a line. Now you can hover over A and see what it's equal to. Read more about it here
I often times get mad at Matab for not doing what I tell it to do, only to find out that some 5x6 matrix variable actually equals 9.
Also, this might help with your plotting of a matrix.
Tip for finding help with matlab. Type what you want to do into google, then follow your query with the word matlab. You should find a link to the mathworks website that will help you.
I hope I've helped. Sorry to just drop info and run, but I hope it was enough.