开始Matlab和编程学习之路,冲!
提醒大家,编程和Matlab早肝早受益,早淦早幸福!
1. 背景
我的方向是做运动康复生物力学相关,主要是通过生物力学数据来定量定性评估运动损伤、康复训练以及运动训练,涉及到数据有:关节力矩、肌电信号、足底压力值、肌张力等,最多用SPSS软件做做数理统计分析,按照步骤输入数据,简单操作即可。
随着采集大量数据,数据处理问题异常严峻,让我意识到数据处理方法和编程的重要性。
2. Matlab和编程的学习原则
作为编程小白,且天赋不足的选手,我觉得学习Matlab时方法很重要,总结一句话就是,
***首先一定要用起来,然后再逐步提高技巧。** *
3. 初期学习目标
大目标:以目标为导向,先用起来再精进;
小目标:
数据排序、求平均数和标准差;
数据归一化;
作图(设置主题,颜色,xy轴标题等);
4. 代码案例分享
以一段简单的代码为例,这段代码主要目的是求若干组数(x,y)的平均值,分享给大家(CSDN很多大神,本菜鸡就上菜了!),数据包分享在附件中哈~
%统计输入矩阵fd的每个角度的压力和,个数,均值?
function [meanfd,position_min,position_max,geshu] = meanForce(fd)
[x,y0] = size(fd); %求数据列数
y = y0/2; %列数/2即为position列数
position_min = 90;
position_max = 1;
for i=1:x %求最小角度和最大角度
for j=1:y
if (fd(i,2*j-1) <= position_min)
position_min = fd(i,2*j-1);
end
if (fd(i,2*j-1) >= position_max)
position_max = fd(i,2*j-1);
end
end
end
position = position_min:position_max;
geshu = length(position); %列数length
meanfd = [position;zeros(1,geshu);zeros(1,geshu);zeros(1,geshu)]';
%position,压力和,position个数,对应force均值
bucha = 1 - position_min;
%补差位,最小角度序号为1,则任一角度的序号=角度+1-最小角度
for i=1:x
for j=1:y
meanfd(fd(i,2*j-1)+bucha,2) = meanfd(fd(i,2*j-1)+bucha,2) + fd(i,2*j); %位置相同的数据,对应偶数列的压力进行叠加求和
meanfd(fd(i,2*j-1)+bucha,3) = meanfd(fd(i,2*j-1)+bucha,3) + 1;
%位置相同的数据,计算position总个数
end
end
for k=1:geshu
meanfd(k,4) = meanfd(k,2) / meanfd(k,3);
%对应每一个位置,均值=和/个数
end
clear all;
close all;
clc;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%