Tag: matlab

如何更改matrix中多个点的值?

我有一个matrix[500×500]。 我有另一个matrix[2×100],其中包含可能在第一个matrix内的坐标对。 我希望能够将第一个matrix的所有值更改为零,而无需循环。 mtx = magic(500); co_ords = [30,50,70; 30,50,70]; mtx(co_ords) = 0;

我怎样才能在MATLAB的一个步骤中加载100个具有相似名称和/或string的文件?

我的目录中有100个ASCII文件,全名如下: int_001.ASC int_002.ASC int_003.ASC 。 。 。 int_099.ASC int_100.ASC 我必须在MATLAB中用importdata导入它们,它应该如下工作: A = importdata('int_001.ASC', ' ', 9) x = A.data(:,1) y = A.data(:,2) 我的问题是:如何避免写入100次importdata ? 有没有办法只写第一个string,然后所有的数据上传? 谢谢

用于MATLAB的Java JPA类

我在Windows XP Pro SP3上使用MATLAB R2007b,Java 1.6 SE,Eclipse Helios和MySql 5。 我试图创build一个使用JPA注释来访问MySql 5数据库的类库。 这个想法是,MATLAB脚本实例化这些Java对象,这些对象提供了访问数据库的API。 我可以创build我在Eclipse中工作的注释类(即JUnittesting)。 我可以将代码导出到jar,我可以从命令提示符运行。 我使用javaaddpath()更新MATLAB Java类path。 我可以在MATLAB中实例化我的类。 但是,当我调用我的init(),调用javax.persistence.Persistence.createEntityManagerFactory(),我得到了可怕的 “没有EntityManager的持久性提供者” 这个错误通常意味着persistence.xml文件不在正确的位置。 但是这一定是因为我的jar是从命令行工作的。 将META-INF文件夹添加到MATLAB java类path没有帮助。 也不提取jar并将提取的文件夹结构添加到classpath,无论是否添加了META-INF。 有没有人有任何想法,坚果或不? 有没有人曾经在任何版本的MATLAB中做过这个。 谢谢。 -reilly。

确定向量中每个唯一元素的出现次数

我怎样才能确定在一个MATLABvector的价值的相对频率? vector = [ 2 2 2 2 1 1 1 2 2 1 1 1 2 2 2 2 1 2 ]; 什么函数会返回每个独特元素的出现次数?

为什么Matlab的inv慢和不准确?

我在几个地方(在文档和这个博客文章中阅读: http : //blogs.mathworks.com/loren/2007/05/16/purpose-of-inv/ )看到,在Matlab中使用inv不是build议,因为它是缓慢和不准确的。 我试图找出这个不准确的原因。 到目前为止,Google并没有给出有意思的结果,所以我认为这里有人可以指导我。 谢谢 !

在形状不可知论的切片的ndarrays

在这篇文章中,我使用术语slice来指代n维数组A的子阵B_i ,使得对于某个维d , size(B_i, d)是1。 A由size(A, d)这样的切片组成,沿着维度d连接。 例如,如果ndims(A)是6, d是3,那么表单的expression式 A(:, :, i, :, :, 🙂 对于i in 1:size(A, d)表示构成1:size(A, d)所有切片(沿着维度d )。 像A(:, :, i, :, :, :)这样的expression式的问题在于它不能像一个维数不等于6的数组那样, A的切片沿维度2,需要一个不同的expression式A(:, i, :, :, :, 🙂 。 这意味着这样的expression式在代码中是无用的,这些代码对于从中提取片段的某个数组的形状是不可知的。 下面的函数是我的matlab-noob试图实现形状不可知的切片。 (名称slice已经被占用,因此我称之为函数hslice ,简称为hyperslice 。该函数的策略是将input数组重新整形为一个合适的三维数组,然后沿着重构数组的第二维取出所需的片,然后重新整形从原始input数组中得到具有切片形状的结果。 function out = hslice(ndarray, d, i) sz = size(ndarray); pfx = sz(1:d-1); % dimensions before d […]

如何在一列中对MATLAB中的二维数组进行sorting?

我想根据特定的列来排列matrix。 有一个sort函数,但它独立地sort所有列。 例如,如果我的matrixdata是: 1 3 5 7 -1 4 然后所需的输出(按第一列sorting)将是: -1 4 1 3 5 7 但是sort(data)的输出是: -1 3 1 4 5 7 我怎样才能sorting这个matrix的第一列?

不使用imrotate,通过Matlab进行图像旋转

我正在试图用Matlab旋转图像,而不使用imrotate函数。 我实际上是通过使用变换matrix做出来的,但是它不够好。问题是,旋转的图像是“滑动的”。让我用图片来告诉你。 这是我想要旋转的图像: 但是当我旋转它,例如45度,它变成这样: 我在问为什么会发生这种情况。这里是我的代码,有没有关于它的math或编程错误? image=torso; %image padding [Rows, Cols] = size(image); Diagonal = sqrt(Rows^2 + Cols^2); RowPad = ceil(Diagonal – Rows) + 2; ColPad = ceil(Diagonal – Cols) + 2; imagepad = zeros(Rows+RowPad, Cols+ColPad); imagepad(ceil(RowPad/2):(ceil(RowPad/2)+Rows-1),ceil(ColPad/2):(ceil(ColPad/2)+Cols-1)) = image; degree=45; %midpoints midx=ceil((size(imagepad,1)+1)/2); midy=ceil((size(imagepad,2)+1)/2); imagerot=zeros(size(imagepad)); %rotation for i=1:size(imagepad,1) for j=1:size(imagepad,2) x=(i-midx)*cos(degree)-(j-midy)*sin(degree); y=(i-midx)*sin(degree)+(j-midy)*cos(degree); x=round(x)+midx; y=round(y)+midy; if (x>=1 && […]

如何dynamic访问结构域?

我有一个很多领域的结构是不同长度的向量。 我想按顺序访问一个循环内的字段。 我试图getfield如下,但MATLAB不喜欢。 我该怎么做? S = struct('A', [1 2], 'B',[3 4 5]); SNames = fieldnames(S); for loopIndex = 1:2 field = getfield(S, SNames(loopIndex)); %do stuff w/ field end ??? Index exceeds matrix dimensions 我首先使用结构,因为数组在不同的字段长度上会遇到麻烦。 有更好的select吗?

最快的Matlab文件阅读?

我的MATLAB程序正在读取大约7米长的文件,并浪费了太多时间在I / O上。 我知道每行都被格式化为两个整数,但我不知道他们占用了多less个字符。 str2num是死一般的,应该用什么matlab函数呢? Catch:我必须一次一行地操作每一行,而不存储整个文件内存,所以没有读取整个matrix的命令都在桌面上。 fid = fopen('file.txt'); tline = fgetl(fid); while ischar(tline) nums = str2num(tline); %do stuff with nums tline = fgetl(fid); end fclose(fid);