jmfs.net
当前位置:首页>>关于matlab矩阵元素赋值的资料>>

matlab矩阵元素赋值

大部分的 matlab 函数是向量化的,那么只需:x = 0:0.01:0.83; M = f(x);如果不行的话,那就只能:M = arrayfun(@f, x);arrayfun 按 x 的值一个一个的调用 f(x),相当于 M(i) = f(x(i)).这要比第一种方法慢很多倍,所以任何时候都应该首选第一种方法尝试.

在matlab中,可通过如下方式给矩阵赋值:a = zeros(3,4); % 初始化一个3*4的矩阵>>a = 0 0 0 00 0 0 00 0 0 0a(1,2) = 5; % 将矩阵a的第1行第2列个元素赋值为5>>a = 0 5 0 00 0 0 00 0 0 0a(2) = 6; % 将矩阵a的第2个元素(按列开始计算)赋值为6>>a = 0 5 0 06 0 0 00 0 0 0a(3,:) = [1 2 3 4]; % 将矩阵a的第3行赋值为[1 2 3 4]>>a = 0 5 0 06 0 0 01 2 3 4

1. 首先确定矩阵的行数和列数2. 用rand函数生成随机数,与行数相乘取整得m;再次生成随机数,与列数相乘取整得n3. 对m行n列赋值,如果要求所赋的值也是随机的,那就用rand生成4. 如此循环,如果取的元素个数要求随机,那么就用rand生成一个数与矩阵总数相乘得循环次数

可以啊,你就这么写就行了先定义一个20x20的全0矩阵,然后对应位置赋值A=zeros(20);A(1,4)=5;

如你所问,a是个矩阵,b就是个结构矩阵,结构矩阵的元素用{}来表示和赋值就可以了.例如 a=[1,2;3,4]>> a = 1 2 3 4>> b{2,2}=a b = [] [] [] [2x2 double]

A=[3 15 7;23 5 9][M,N]=size(A)for i=1:Mfor j=1:Nif A(i,j)>10B(i,j)=A(i,j);elseif A(i,j)

按你的意思,a里面数是啥无所谓了呗.看看这个怎么样.>> a=[1,2;3,4];b=[1 0; 0 1];a=ones(size(a));kron(a,b)ans = 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1

先把矩阵中的那个元素找到 ,如I(i,j)=a,a就是你想赋的值如果你想给整个矩阵都随机赋值 就是 rand(I)

举个例子,比如一个10*10的矩阵,从第三行第二列到第9行第8列的一块数据赋某个值:>> a=rand(10,10);>> a(3:9,2:8)=10

问题的思路是首先生成所有访问data时的二元下标组合,然后用sub2ind转换成一元索引,然后就可以向量化赋值.[M, N] = size(b); sub_i = repmat((1:N), [M 1]); % 构造下标i的序列 ind = sub2ind(size(data), b(:), sub_i(:)); c = data(ind);

jtlm.net | qimiaodingzhi.net | wnlt.net | ltww.net | lpfk.net | 网站首页 | 网站地图
All rights reserved Powered by www.jmfs.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com