我使用一个简单的for循环来裁剪大量图像,然后将它们存储在单元格数组中.我一直收到消息:
变量
croppedSag似乎在每次循环迭代时改变大小.考虑预先分配速度.
我在MATLAB编写代码之前已经多次看过这个.我总是忽略它,并且好奇有多少预先分配将增加运行时间,如果我有10,000个图像或更大的数字?
另外,我已阅读有关在文档中预分配的内容,并说它zeros()可用于此目的.我如何将其用于下面的代码?
croppedSag = {};
for i = 1:sagNum
croppedSag{end+1} = imcrop(SagArray{i},rect);
end
Run Code Online (Sandbox Code Playgroud)
我没有完全按照文档中的示例进行操作.
我收到此错误"动态结构引用的参数必须评估为有效的字段名称." 我有一个名为spectData的结构,它看起来像这样
spectData{1} =
data: [256x26 double]
textdata: {1x26 cell}
colheaders: {1x26 cell}
Row: [256x1 double]
Col: [256x1 double]
Cho: [256x1 double]
Cho0x25SD: [256x1 double]
Cho0x2FCit: [256x1 double]
PCho: [256x1 double]
PCho0x25SD: [256x1 double]
Run Code Online (Sandbox Code Playgroud)
我尝试在函数调用中分配这个代码行如下所示.这是matlab所说的错误所在的代码行.
SDdata = spectData{sliceNum - firstSlice}.(MetabMapSDString);
Run Code Online (Sandbox Code Playgroud)
其中metabString是其中一个名称的字符串,例如"PCho0x25SD",spectData总共有4个子结构,就像我显示的那样.我究竟做错了什么??这是一个双倍,所以我认为应该没问题.
我有一些代码需要很长时间才能运行(几个小时),我认为这是因为它在if语句中进行了大量的比较.我希望它运行得更快,有没有人有任何有用的建议来改善运行时?如果有人对减慢代码的速度有不同的看法,那么我可以尝试修复它,我们将不胜感激.
xPI = zeros(1,1783);
argList2 = zeros(1,1783);
aspList2 = zeros(1,1783);
cysList2 = zeros(1,1783);
gluList2 = zeros(1,1783);
hisList2 = zeros(1,1783);
lysList2 = zeros(1,1783);
tyrList2 = zeros(1,1783);
minList= xlsread('20110627.xls','CM19:CM25');
maxList= xlsread('20110627.xls','CN19:CN25');
N = length(pIList);
for i = 1:N
if (argList(i)>= minList(1) && argList(i) <= maxList(1)) ...
&& (aspList(i)>= minList(2) && aspList(i) <= maxList(2)) ...
&& (cysList(i)>= minList(3) && cysList(i) <= maxList(3)) ...
&& (gluList(i)>= minList(4) && gluList(i) <= maxList(4)) ...
&& (hisList(i)>= minList(5) && hisList(i) <= maxList(5)) ...
&& (lysList(i)>= minList(6) && …Run Code Online (Sandbox Code Playgroud) 我正在为dicom图像和光谱学编写工具,我想在我正在制作的函数之间使用很多共享数据.我有我制作的GUI,不同的滑块和按钮使用了dicom文件中的大量这些共享数据.
我一直在使用全局变量来存储所有这些函数共享的信息.我目前有很多全局变量.如果可能的话,我被教导要避免全局变量,因为耦合增加了.在每个函数中读取dicom文件中的数据会更好吗?这似乎是多余的.将MATLAB用作面向对象的帮助吗?
我正在用java编写一个用carnot引擎建模的程序,我想计算完成的工作,我需要使用集成.我一直在谷歌四处寻找,并没有找到我想要的,有什么建议吗?
我有一个 0,1,2 的 161X911 数据矩阵,然后整个矩阵中有一些 NaN。我尝试在数据上运行内置函数 kmeans,每当我的 K(簇数)值大于 5 时,它就会返回这个
Warning: Ignoring rows of X with missing data.
> In kmeans at 128
??? Error using ==> kmeans at 284
X must have more rows than the number of clusters.
Run Code Online (Sandbox Code Playgroud)
有没有解决的办法?我想只有 5 行没有任何 NaN。
我想使用 strcmp 将字符数组的子范围与另一个字符串进行比较。我通过从文本文件中读取然后将它们连接成一个更长的字符数组来制作 dna 字符数组。
char dna[10] = "ATGGATGATGA";
char STOP_CODON[3] = "TAA";
int TS1 = strcmp(&STOP_CODON[0]),dna[0]);
int TS2 = strcmp(&STOP_CODON[1]),dna[1]);
int TS3 = strcmp(&STOP_CODON[2]),dna[2]);
if(T1+T2+T3) == 3 {
int T = 1;
}
Run Code Online (Sandbox Code Playgroud)
因此,如果它们都匹配,则 T 返回为 true(1) 我想在三个字符的子范围内将 STOP_CODON 与 dna 进行比较。我想不出一种简单的方法来做到这一点。在 matlab 中,您可以执行以下操作:
strcmp(STOP_CODON[1:3],dna[1:3])
Run Code Online (Sandbox Code Playgroud)
在 C 中可能有这样的事情吗?我想用它最终遍历整个 dna 数组,实际长度为 60,000 个字符
printf("%s.6\n",&dna[1]);
Run Code Online (Sandbox Code Playgroud)
printf 有这种功能,但我想用 strcmp 做到这一点。在 C 中有比这更有效的东西吗?
procedure max (a[1..n]: integers)
max := a[1]
for i := 2 to n
if max < a[i] then max := a[i]
Run Code Online (Sandbox Code Playgroud)
是复杂性O(1)还是O(n)最佳情况?序列包含n元素.它是伪代码.
我想在for循环运行时求和,然后打印出所有先前酸值的总值.我现在的问题是它目前只打印单个值而不是酸性的总和值.我怎么总结.
这是打印到命令窗口的内容
ans =
5.9676
Run Code Online (Sandbox Code Playgroud)
ans =
2.1676
Run Code Online (Sandbox Code Playgroud)
这是我的代码
pki = [7.7,3.9];
t= 2;
n=55;
for i = 1:t;
acidic = log10(1/((n-1)*(10^-pki(i))));
sum(acidic)
end
Run Code Online (Sandbox Code Playgroud) 这是家庭作业的摘录."Prog此数据类型应该只有一个构造函数,并用于表示窗体的程序:
read vin1 ; read vin2 ; < some statements > write vout2 ;
Run Code Online (Sandbox Code Playgroud)
这个构造函数也可以命名为Prog,它接受一个字符串作为两个输入和一个输出变量的名称."
将expProg定义为Prog类型,并将其作为上面左侧程序的抽象语法表示.这应该做如下:
expProg = Prog "x" "y" <some statements> "z"
Run Code Online (Sandbox Code Playgroud)
我是Haskell的新手,对此感到困惑.
我做了这样的构造函数.然而,这似乎不对.
data Prog = Prog String String String
deriving (Show,Eq)
Run Code Online (Sandbox Code Playgroud)
谁能解释一下这里发生了什么?我不明白如何制作这个构造函数.这是我为语句做的数据类型:
data Stmt = Assing String Expr
| WhileLoop Expr Stmt
| Ifthen Expr Stmt
| IfthenElse Expr Stmt Stmt
| Composition [Stmt]
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个适用于列表的数组实现的remove方法.我可以将duplicate元素设置为null以将其删除吗?假设列表是有序的.
ArrayList a = new ArrayList[];
public void removeduplicates(){
for(a[i].equals(a[i+1]){
a[i+1] = null;
}
a[i+1] = a[i];
}
Run Code Online (Sandbox Code Playgroud)